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 37680 : pattern0 (rtx x1)
57 : {
58 37680 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
59 37680 : int res ATTRIBUTE_UNUSED;
60 37680 : switch (GET_MODE (operands[0]))
61 : {
62 3884 : case E_QImode:
63 3884 : if (!nonimmediate_operand (operands[0], E_QImode)
64 3530 : || GET_MODE (x1) != E_QImode
65 7414 : || !nonimmediate_operand (operands[1], E_QImode))
66 714 : return -1;
67 : return 0;
68 :
69 2676 : case E_HImode:
70 2676 : if (!nonimmediate_operand (operands[0], E_HImode)
71 2676 : || GET_MODE (x1) != E_HImode
72 5352 : || !nonimmediate_operand (operands[1], E_HImode))
73 59 : return -1;
74 : return 1;
75 :
76 : default:
77 : return -1;
78 : }
79 : }
80 :
81 : int
82 24350 : pattern16 (rtx x1)
83 : {
84 24350 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
85 24350 : rtx x2, x3;
86 24350 : int res ATTRIBUTE_UNUSED;
87 24350 : x2 = XEXP (x1, 1);
88 24350 : x3 = XEXP (x2, 0);
89 24350 : operands[2] = x3;
90 24350 : if (!register_operand (operands[2], E_QImode))
91 : return -1;
92 21278 : return pattern15 (x1); /* [-1, 1] */
93 : }
94 :
95 : int
96 367828 : pattern19 (rtx x1)
97 : {
98 367828 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
99 367828 : rtx x2, x3;
100 367828 : int res ATTRIBUTE_UNUSED;
101 367828 : x2 = XEXP (x1, 0);
102 367828 : operands[1] = x2;
103 367828 : x3 = XEXP (x1, 1);
104 367828 : operands[2] = x3;
105 367828 : switch (GET_MODE (operands[0]))
106 : {
107 232387 : case E_DImode:
108 232387 : return pattern4 (x1,
109 232387 : E_DImode); /* [-1, 0] */
110 :
111 90698 : case E_SImode:
112 90698 : if (pattern4 (x1,
113 : E_SImode) != 0)
114 : return -1;
115 : return 1;
116 :
117 : default:
118 : return -1;
119 : }
120 : }
121 :
122 : int
123 968256 : pattern26 (rtx x1, machine_mode i1)
124 : {
125 968256 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
126 968256 : int res ATTRIBUTE_UNUSED;
127 968256 : if (!register_operand (operands[0], i1)
128 958918 : || GET_MODE (x1) != i1
129 958860 : || !vector_operand (operands[1], i1)
130 1829301 : || !vector_operand (operands[2], i1))
131 184925 : return -1;
132 : return 0;
133 : }
134 :
135 : int
136 3074308 : pattern30 (rtx x1)
137 : {
138 3074308 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
139 3074308 : rtx x2, x3, x4, x5;
140 3074308 : int res ATTRIBUTE_UNUSED;
141 3074308 : x2 = XEXP (x1, 0);
142 3074308 : operands[0] = x2;
143 3074308 : x3 = XEXP (x1, 1);
144 3074308 : x4 = XEXP (x3, 0);
145 3074308 : operands[1] = x4;
146 3074308 : x5 = XEXP (x3, 1);
147 3074308 : operands[2] = x5;
148 3074308 : switch (GET_MODE (operands[0]))
149 : {
150 2937 : case E_V16HImode:
151 2937 : if (!register_operand (operands[0], E_V16HImode)
152 2937 : || GET_MODE (x3) != E_V16HImode)
153 : return -1;
154 : return 0;
155 :
156 61239 : case E_V8HImode:
157 61239 : if (!register_operand (operands[0], E_V8HImode)
158 61239 : || GET_MODE (x3) != E_V8HImode)
159 : return -1;
160 : return 1;
161 :
162 14810 : case E_V8SImode:
163 14810 : if (!register_operand (operands[0], E_V8SImode)
164 14810 : || GET_MODE (x3) != E_V8SImode)
165 : return -1;
166 : return 2;
167 :
168 190463 : case E_V4SImode:
169 190463 : if (!register_operand (operands[0], E_V4SImode)
170 190463 : || GET_MODE (x3) != E_V4SImode)
171 : return -1;
172 : return 3;
173 :
174 15788 : case E_V4DImode:
175 15788 : if (!register_operand (operands[0], E_V4DImode)
176 15788 : || GET_MODE (x3) != E_V4DImode)
177 : return -1;
178 : return 4;
179 :
180 146180 : case E_V2DImode:
181 146180 : if (!register_operand (operands[0], E_V2DImode)
182 146180 : || GET_MODE (x3) != E_V2DImode)
183 : return -1;
184 : return 5;
185 :
186 1944 : case E_V32HImode:
187 1944 : if (!register_operand (operands[0], E_V32HImode)
188 1944 : || GET_MODE (x3) != E_V32HImode)
189 : return -1;
190 : return 6;
191 :
192 9072 : case E_V16SImode:
193 9072 : if (!register_operand (operands[0], E_V16SImode)
194 9072 : || GET_MODE (x3) != E_V16SImode)
195 : return -1;
196 : return 7;
197 :
198 5734 : case E_V8DImode:
199 5734 : if (!register_operand (operands[0], E_V8DImode)
200 5734 : || GET_MODE (x3) != E_V8DImode)
201 : return -1;
202 : return 8;
203 :
204 413196 : case E_V1TImode:
205 413196 : if (!register_operand (operands[0], E_V1TImode)
206 413196 : || GET_MODE (x3) != E_V1TImode)
207 : return -1;
208 : return 9;
209 :
210 110 : case E_V4TImode:
211 110 : if (!register_operand (operands[0], E_V4TImode)
212 110 : || GET_MODE (x3) != E_V4TImode
213 110 : || !nonimmediate_operand (operands[1], E_V4TImode)
214 220 : || !const_0_to_255_mul_8_operand (operands[2], E_SImode))
215 0 : return -1;
216 : return 10;
217 :
218 252 : case E_V2TImode:
219 252 : if (!register_operand (operands[0], E_V2TImode)
220 252 : || GET_MODE (x3) != E_V2TImode
221 504 : || !const_0_to_255_mul_8_operand (operands[2], E_SImode))
222 0 : return -1;
223 : return 11;
224 :
225 : default:
226 : return -1;
227 : }
228 : }
229 :
230 : int
231 206557 : pattern44 (rtx x1, int *pnum_clobbers)
232 : {
233 206557 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
234 206557 : rtx x2, x3, x4;
235 206557 : int res ATTRIBUTE_UNUSED;
236 206557 : if (pnum_clobbers == NULL)
237 : return -1;
238 206557 : x2 = XEXP (x1, 1);
239 206557 : x3 = XEXP (x2, 0);
240 206557 : if (GET_MODE (x3) != E_TImode)
241 : return -1;
242 7616 : x4 = XEXP (x1, 0);
243 7616 : operands[0] = x4;
244 7616 : return pattern43 (x2,
245 : E_DImode,
246 7616 : E_TImode); /* [-1, 0] */
247 : }
248 :
249 : int
250 218094 : pattern50 (rtx x1)
251 : {
252 218094 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
253 218094 : rtx x2, x3;
254 218094 : int res ATTRIBUTE_UNUSED;
255 218094 : x2 = XEXP (x1, 0);
256 218094 : operands[1] = x2;
257 218094 : x3 = XEXP (x1, 1);
258 218094 : operands[2] = x3;
259 218094 : return pattern49 (x1); /* [-1, 3] */
260 : }
261 :
262 : int
263 5008 : pattern53 (rtx x1)
264 : {
265 5008 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
266 5008 : rtx x2;
267 5008 : int res ATTRIBUTE_UNUSED;
268 5008 : x2 = XEXP (x1, 0);
269 5008 : operands[1] = x2;
270 5008 : switch (GET_MODE (operands[0]))
271 : {
272 2349 : case E_V16QImode:
273 2349 : if (!nonimmediate_operand (operands[0], E_V16QImode)
274 2349 : || GET_MODE (x1) != E_V16QImode)
275 : return -1;
276 2349 : switch (GET_MODE (operands[1]))
277 : {
278 250 : case E_V16SImode:
279 250 : if (!register_operand (operands[1], E_V16SImode))
280 : return -1;
281 : return 0;
282 :
283 2099 : case E_V16HImode:
284 2099 : if (!register_operand (operands[1], E_V16HImode))
285 : return -1;
286 : return 1;
287 :
288 : default:
289 : return -1;
290 : }
291 :
292 227 : case E_V16HImode:
293 227 : if (!nonimmediate_operand (operands[0], E_V16HImode)
294 227 : || GET_MODE (x1) != E_V16HImode
295 454 : || !register_operand (operands[1], E_V16SImode))
296 2 : return -1;
297 : return 2;
298 :
299 228 : case E_V8SImode:
300 228 : if (!nonimmediate_operand (operands[0], E_V8SImode)
301 228 : || GET_MODE (x1) != E_V8SImode
302 456 : || !register_operand (operands[1], E_V8DImode))
303 6 : return -1;
304 : return 3;
305 :
306 443 : case E_V8HImode:
307 443 : if (!nonimmediate_operand (operands[0], E_V8HImode)
308 443 : || GET_MODE (x1) != E_V8HImode)
309 : return -1;
310 443 : switch (GET_MODE (operands[1]))
311 : {
312 218 : case E_V8DImode:
313 218 : if (!register_operand (operands[1], E_V8DImode))
314 : return -1;
315 : return 4;
316 :
317 225 : case E_V8SImode:
318 225 : if (!register_operand (operands[1], E_V8SImode))
319 : return -1;
320 : return 5;
321 :
322 : default:
323 : return -1;
324 : }
325 :
326 1038 : case E_V32QImode:
327 1038 : if (!nonimmediate_operand (operands[0], E_V32QImode)
328 1038 : || GET_MODE (x1) != E_V32QImode
329 2076 : || !register_operand (operands[1], E_V32HImode))
330 14 : return -1;
331 : return 6;
332 :
333 219 : case E_V4SImode:
334 219 : if (!nonimmediate_operand (operands[0], E_V4SImode)
335 219 : || GET_MODE (x1) != E_V4SImode
336 438 : || !register_operand (operands[1], E_V4DImode))
337 6 : return -1;
338 : return 7;
339 :
340 : default:
341 : return -1;
342 : }
343 : }
344 :
345 : int
346 2826243 : pattern75 (rtx x1)
347 : {
348 2826243 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
349 2826243 : rtx x2, x3, x4, x5, x6;
350 2826243 : int res ATTRIBUTE_UNUSED;
351 2826243 : x2 = XEXP (x1, 1);
352 2826243 : switch (GET_CODE (x2))
353 : {
354 1267032 : case ASHIFT:
355 1267032 : if (GET_MODE (x2) != E_TImode)
356 : return -1;
357 1228444 : x3 = XEXP (x2, 0);
358 1228444 : if (GET_CODE (x3) != ZERO_EXTEND
359 1228183 : || GET_MODE (x3) != E_TImode)
360 : return -1;
361 1228183 : x4 = XEXP (x2, 1);
362 1228183 : if (x4 != const_int_rtx[MAX_SAVED_CONST_INT + 64]
363 1228183 : || !nonimmediate_operand (operands[0], E_TImode)
364 2455145 : || GET_MODE (x1) != E_TImode)
365 1221 : return -1;
366 1226962 : x5 = XEXP (x1, 0);
367 1226962 : if (GET_MODE (x5) != E_TImode
368 1226962 : || !nonimmediate_operand (operands[1], E_TImode)
369 2440907 : || !const_scalar_int_operand (operands[3], E_TImode))
370 13017 : return -1;
371 1213945 : x6 = XEXP (x3, 0);
372 1213945 : operands[2] = x6;
373 1213945 : if (!nonimmediate_operand (operands[2], E_DImode))
374 : return -1;
375 : return 0;
376 :
377 561980 : case ZERO_EXTEND:
378 561980 : x3 = XEXP (x2, 0);
379 561980 : operands[2] = x3;
380 561980 : switch (GET_MODE (operands[0]))
381 : {
382 545699 : case E_TImode:
383 545699 : if (!nonimmediate_operand (operands[0], E_TImode)
384 545699 : || GET_MODE (x1) != E_TImode)
385 : return -1;
386 545698 : x5 = XEXP (x1, 0);
387 545698 : if (GET_MODE (x5) != E_TImode
388 545698 : || !nonimmediate_operand (operands[1], E_TImode)
389 544071 : || !const_scalar_int_operand (operands[3], E_TImode)
390 544071 : || GET_MODE (x2) != E_TImode
391 1089769 : || !nonimmediate_operand (operands[2], E_DImode))
392 47145 : return -1;
393 : return 1;
394 :
395 13930 : case E_DImode:
396 13930 : if (!nonimmediate_operand (operands[0], E_DImode)
397 13930 : || GET_MODE (x1) != E_DImode)
398 : return -1;
399 13922 : x5 = XEXP (x1, 0);
400 13922 : if (GET_MODE (x5) != E_DImode
401 13922 : || !nonimmediate_operand (operands[1], E_DImode)
402 10055 : || !const_int_operand (operands[3], E_DImode)
403 3972 : || GET_MODE (x2) != E_DImode
404 17894 : || !nonimmediate_operand (operands[2], E_SImode))
405 10490 : return -1;
406 : return 2;
407 :
408 : default:
409 : return -1;
410 : }
411 :
412 : default:
413 : return -1;
414 : }
415 : }
416 :
417 : int
418 3203 : pattern103 (rtx x1, machine_mode i1)
419 : {
420 3203 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
421 3203 : rtx x2, x3, x4, x5, x6, x7;
422 3203 : int res ATTRIBUTE_UNUSED;
423 3203 : if (GET_MODE (x1) != i1)
424 : return -1;
425 441 : x2 = XEXP (x1, 0);
426 441 : if (GET_CODE (x2) != VEC_SELECT
427 284 : || GET_MODE (x2) != i1)
428 : return -1;
429 284 : x3 = XEXP (x2, 1);
430 284 : if (GET_CODE (x3) != PARALLEL
431 284 : || XVECLEN (x3, 0) != 1)
432 : return -1;
433 284 : x4 = XVECEXP (x3, 0, 0);
434 284 : if (x4 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
435 : return -1;
436 284 : x5 = XEXP (x1, 1);
437 284 : if (GET_CODE (x5) != VEC_SELECT
438 284 : || GET_MODE (x5) != i1)
439 : return -1;
440 284 : x6 = XEXP (x5, 1);
441 284 : if (GET_CODE (x6) != PARALLEL
442 284 : || XVECLEN (x6, 0) != 1)
443 : return -1;
444 284 : x7 = XVECEXP (x6, 0, 0);
445 284 : if (x7 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
446 0 : return -1;
447 : return 0;
448 : }
449 :
450 : int
451 41226 : pattern114 (rtx x1, int *pnum_clobbers)
452 : {
453 41226 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
454 41226 : rtx x2;
455 41226 : int res ATTRIBUTE_UNUSED;
456 41226 : switch (GET_MODE (operands[0]))
457 : {
458 10252 : case E_SImode:
459 10252 : if (!register_operand (operands[0], E_SImode)
460 10252 : || GET_MODE (x1) != E_SImode)
461 : return -1;
462 10082 : x2 = XEXP (x1, 0);
463 10082 : switch (GET_MODE (x2))
464 : {
465 7545 : case E_QImode:
466 7545 : if (!nonimmediate_operand (operands[1], E_QImode)
467 7545 : || !x86_64_general_operand (operands[2], E_QImode))
468 277 : return -1;
469 : return 0;
470 :
471 2537 : case E_HImode:
472 2537 : if (!nonimmediate_operand (operands[1], E_HImode)
473 2537 : || !x86_64_general_operand (operands[2], E_HImode))
474 195 : return -1;
475 : return 1;
476 :
477 : default:
478 : return -1;
479 : }
480 :
481 27004 : case E_DImode:
482 27004 : if (!register_operand (operands[0], E_DImode)
483 27004 : || GET_MODE (x1) != E_DImode)
484 : return -1;
485 26773 : x2 = XEXP (x1, 0);
486 26773 : switch (GET_MODE (x2))
487 : {
488 2162 : case E_QImode:
489 2162 : if (!nonimmediate_operand (operands[1], E_QImode)
490 2162 : || !x86_64_general_operand (operands[2], E_QImode))
491 110 : return -1;
492 : return 2;
493 :
494 644 : case E_HImode:
495 644 : if (!nonimmediate_operand (operands[1], E_HImode)
496 644 : || !x86_64_general_operand (operands[2], E_HImode))
497 145 : return -1;
498 : return 3;
499 :
500 23967 : case E_SImode:
501 23967 : if (pnum_clobbers == NULL
502 23650 : || !nonimmediate_operand (operands[1], E_SImode)
503 45792 : || !x86_64_general_operand (operands[2], E_SImode))
504 2509 : return -1;
505 : return 4;
506 :
507 : default:
508 : return -1;
509 : }
510 :
511 : default:
512 : return -1;
513 : }
514 : }
515 :
516 : int
517 24890 : pattern135 (rtx x1, machine_mode i1, machine_mode i2)
518 : {
519 24890 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
520 24890 : rtx x2;
521 24890 : int res ATTRIBUTE_UNUSED;
522 24890 : if (!register_operand (operands[0], i2)
523 24890 : || GET_MODE (x1) != i2)
524 : return -1;
525 23972 : x2 = XEXP (x1, 0);
526 23972 : if (GET_MODE (x2) != i2
527 23972 : || !nonimm_or_0_operand (operands[3], i2)
528 47438 : || !register_operand (operands[4], i1))
529 2873 : return -1;
530 : return 0;
531 : }
532 :
533 : int
534 1774 : pattern143 (rtx x1, machine_mode i1)
535 : {
536 1774 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
537 1774 : rtx x2;
538 1774 : int res ATTRIBUTE_UNUSED;
539 1774 : if (!register_operand (operands[0], i1)
540 1774 : || GET_MODE (x1) != i1)
541 : return -1;
542 1678 : x2 = XEXP (x1, 0);
543 1678 : if (GET_MODE (x2) != i1
544 1678 : || !nonimm_or_0_operand (operands[2], i1))
545 39 : return -1;
546 : return 0;
547 : }
548 :
549 : int
550 5558 : pattern150 (rtx x1)
551 : {
552 5558 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
553 5558 : rtx x2, x3, x4, x5, x6;
554 5558 : int res ATTRIBUTE_UNUSED;
555 5558 : x2 = XEXP (x1, 0);
556 5558 : x3 = XEXP (x2, 0);
557 5558 : operands[1] = x3;
558 5558 : x4 = XEXP (x2, 1);
559 5558 : operands[2] = x4;
560 5558 : x5 = XEXP (x1, 1);
561 5558 : operands[3] = x5;
562 5558 : x6 = XEXP (x1, 2);
563 5558 : operands[4] = x6;
564 5558 : switch (GET_CODE (operands[2]))
565 : {
566 2886 : case REG:
567 2886 : case SUBREG:
568 2886 : case MEM:
569 2886 : switch (GET_MODE (operands[0]))
570 : {
571 506 : case E_V16SImode:
572 506 : return pattern136 (x1,
573 : E_V16SImode,
574 506 : E_HImode); /* [-1, 0] */
575 :
576 506 : case E_V8SImode:
577 506 : if (pattern136 (x1,
578 : E_V8SImode,
579 : E_QImode) != 0)
580 : return -1;
581 : return 1;
582 :
583 398 : case E_V4SImode:
584 398 : if (pattern136 (x1,
585 : E_V4SImode,
586 : E_QImode) != 0)
587 : return -1;
588 : return 2;
589 :
590 534 : case E_V8DImode:
591 534 : if (pattern136 (x1,
592 : E_V8DImode,
593 : E_QImode) != 0)
594 : return -1;
595 : return 3;
596 :
597 534 : case E_V4DImode:
598 534 : if (pattern136 (x1,
599 : E_V4DImode,
600 : E_QImode) != 0)
601 : return -1;
602 : return 4;
603 :
604 408 : case E_V2DImode:
605 408 : if (pattern136 (x1,
606 : E_V2DImode,
607 : E_QImode) != 0)
608 : return -1;
609 : return 5;
610 :
611 : default:
612 : return -1;
613 : }
614 :
615 2556 : case CONST_INT:
616 2556 : if (!const_0_to_255_operand (operands[2], E_SImode))
617 : return -1;
618 2556 : switch (GET_MODE (operands[0]))
619 : {
620 452 : case E_V16SImode:
621 452 : if (pattern149 (x1,
622 : E_V16SImode,
623 : E_HImode) != 0)
624 : return -1;
625 : return 6;
626 :
627 434 : case E_V8SImode:
628 434 : if (pattern149 (x1,
629 : E_V8SImode,
630 : E_QImode) != 0)
631 : return -1;
632 : return 7;
633 :
634 350 : case E_V4SImode:
635 350 : if (pattern149 (x1,
636 : E_V4SImode,
637 : E_QImode) != 0)
638 : return -1;
639 : return 8;
640 :
641 506 : case E_V8DImode:
642 506 : if (pattern149 (x1,
643 : E_V8DImode,
644 : E_QImode) != 0)
645 : return -1;
646 : return 9;
647 :
648 452 : case E_V4DImode:
649 452 : if (pattern149 (x1,
650 : E_V4DImode,
651 : E_QImode) != 0)
652 : return -1;
653 : return 10;
654 :
655 362 : case E_V2DImode:
656 362 : if (pattern149 (x1,
657 : E_V2DImode,
658 : E_QImode) != 0)
659 : return -1;
660 : return 11;
661 :
662 : default:
663 : return -1;
664 : }
665 :
666 : default:
667 : return -1;
668 : }
669 : }
670 :
671 : int
672 405 : pattern165 (rtx x1, machine_mode i1)
673 : {
674 405 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
675 405 : rtx x2, x3, x4, x5;
676 405 : int res ATTRIBUTE_UNUSED;
677 405 : x2 = XEXP (x1, 1);
678 405 : if (GET_MODE (x2) != i1)
679 : return -1;
680 405 : x3 = XEXP (x1, 0);
681 405 : operands[0] = x3;
682 405 : if (!register_operand (operands[0], i1))
683 : return -1;
684 390 : x4 = XVECEXP (x2, 0, 0);
685 390 : operands[1] = x4;
686 390 : if (!register_operand (operands[1], i1))
687 : return -1;
688 316 : x5 = XVECEXP (x2, 0, 1);
689 316 : operands[2] = x5;
690 316 : if (!register_operand (operands[2], i1))
691 : return -1;
692 : return 0;
693 : }
694 :
695 : int
696 616 : pattern173 (rtx x1)
697 : {
698 616 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
699 616 : rtx x2, x3, x4, x5;
700 616 : int res ATTRIBUTE_UNUSED;
701 616 : x2 = XEXP (x1, 0);
702 616 : operands[0] = x2;
703 616 : x3 = XEXP (x1, 1);
704 616 : x4 = XVECEXP (x3, 0, 0);
705 616 : operands[1] = x4;
706 616 : x5 = XVECEXP (x3, 0, 1);
707 616 : operands[2] = x5;
708 616 : if (!const_0_to_255_operand (operands[2], E_SImode))
709 : return -1;
710 616 : switch (GET_MODE (operands[0]))
711 : {
712 206 : case E_V32BFmode:
713 206 : if (!register_operand (operands[0], E_V32BFmode)
714 188 : || GET_MODE (x3) != E_V32BFmode
715 394 : || !nonimmediate_operand (operands[1], E_V32BFmode))
716 33 : return -1;
717 : return 0;
718 :
719 206 : case E_V16BFmode:
720 206 : if (!register_operand (operands[0], E_V16BFmode)
721 188 : || GET_MODE (x3) != E_V16BFmode
722 394 : || !nonimmediate_operand (operands[1], E_V16BFmode))
723 33 : return -1;
724 : return 1;
725 :
726 204 : case E_V8BFmode:
727 204 : if (!register_operand (operands[0], E_V8BFmode)
728 186 : || GET_MODE (x3) != E_V8BFmode
729 390 : || !nonimmediate_operand (operands[1], E_V8BFmode))
730 33 : return -1;
731 : return 2;
732 :
733 : default:
734 : return -1;
735 : }
736 : }
737 :
738 : int
739 1975 : pattern187 (rtx x1)
740 : {
741 1975 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
742 1975 : rtx x2, x3, x4;
743 1975 : int res ATTRIBUTE_UNUSED;
744 1975 : x2 = XEXP (x1, 0);
745 1975 : x3 = XEXP (x2, 0);
746 1975 : operands[1] = x3;
747 1975 : x4 = XEXP (x1, 1);
748 1975 : operands[2] = x4;
749 1975 : switch (GET_MODE (operands[0]))
750 : {
751 410 : case E_V8HFmode:
752 410 : if (!register_operand (operands[0], E_V8HFmode)
753 410 : || GET_MODE (x1) != E_V8HFmode)
754 : return -1;
755 388 : switch (GET_MODE (x2))
756 : {
757 268 : case E_V4HFmode:
758 268 : if (!const0_operand (operands[2], E_V4HFmode))
759 : return -1;
760 268 : switch (GET_MODE (operands[1]))
761 : {
762 148 : case E_V4SImode:
763 148 : if (!vector_operand (operands[1], E_V4SImode))
764 : return -1;
765 : return 0;
766 :
767 120 : case E_V4DImode:
768 120 : if (!vector_operand (operands[1], E_V4DImode))
769 : return -1;
770 : return 1;
771 :
772 : default:
773 : return -1;
774 : }
775 :
776 120 : case E_V2HFmode:
777 120 : if (!vector_operand (operands[1], E_V2DImode)
778 120 : || !const0_operand (operands[2], E_V6HFmode))
779 2 : return -1;
780 : return 2;
781 :
782 : default:
783 : return -1;
784 : }
785 :
786 286 : case E_V4SFmode:
787 286 : if (pattern186 (x1,
788 : E_V2SFmode,
789 : E_V2DImode,
790 : E_V4SFmode) != 0)
791 : return -1;
792 : return 3;
793 :
794 : default:
795 : return -1;
796 : }
797 : }
798 :
799 : int
800 490522 : pattern199 (rtx x1, rtx_code i1)
801 : {
802 490522 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
803 490522 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
804 490522 : rtx x10, x11, x12, x13, x14, x15, x16, x17;
805 490522 : rtx x18, x19, x20, x21, x22, x23, x24, x25;
806 490522 : int res ATTRIBUTE_UNUSED;
807 490522 : x2 = XEXP (x1, 0);
808 490522 : x3 = XEXP (x2, 0);
809 490522 : if (GET_CODE (x3) != VEC_SELECT)
810 : return -1;
811 2271 : x4 = XEXP (x3, 1);
812 2271 : if (GET_CODE (x4) != PARALLEL)
813 : return -1;
814 2271 : x5 = XEXP (x1, 1);
815 2271 : if (GET_CODE (x5) != i1)
816 : return -1;
817 634 : x6 = XEXP (x5, 0);
818 634 : if (GET_CODE (x6) != VEC_SELECT)
819 : return -1;
820 626 : x7 = XEXP (x6, 1);
821 626 : if (GET_CODE (x7) != PARALLEL)
822 : return -1;
823 626 : x8 = XEXP (x3, 0);
824 626 : operands[1] = x8;
825 626 : x9 = XEXP (x6, 0);
826 626 : if (!rtx_equal_p (x9, operands[1]))
827 : return -1;
828 568 : switch (XVECLEN (x4, 0))
829 : {
830 180 : case 8:
831 180 : x10 = XVECEXP (x4, 0, 0);
832 180 : if (x10 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
833 : return -1;
834 180 : x11 = XVECEXP (x4, 0, 1);
835 180 : if (x11 != const_int_rtx[MAX_SAVED_CONST_INT + 2])
836 : return -1;
837 180 : x12 = XVECEXP (x4, 0, 2);
838 180 : if (x12 != const_int_rtx[MAX_SAVED_CONST_INT + 4])
839 : return -1;
840 180 : x13 = XVECEXP (x4, 0, 3);
841 180 : if (x13 != const_int_rtx[MAX_SAVED_CONST_INT + 6])
842 : return -1;
843 180 : x14 = XVECEXP (x4, 0, 4);
844 180 : if (x14 != const_int_rtx[MAX_SAVED_CONST_INT + 8])
845 : return -1;
846 180 : x15 = XVECEXP (x4, 0, 5);
847 180 : if (x15 != const_int_rtx[MAX_SAVED_CONST_INT + 10])
848 : return -1;
849 180 : x16 = XVECEXP (x4, 0, 6);
850 180 : if (x16 != const_int_rtx[MAX_SAVED_CONST_INT + 12])
851 : return -1;
852 180 : x17 = XVECEXP (x4, 0, 7);
853 180 : if (x17 != const_int_rtx[MAX_SAVED_CONST_INT + 14]
854 180 : || XVECLEN (x7, 0) != 8)
855 : return -1;
856 180 : x18 = XVECEXP (x7, 0, 0);
857 180 : if (x18 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
858 : return -1;
859 180 : x19 = XVECEXP (x7, 0, 1);
860 180 : if (x19 != const_int_rtx[MAX_SAVED_CONST_INT + 3])
861 : return -1;
862 180 : x20 = XVECEXP (x7, 0, 2);
863 180 : if (x20 != const_int_rtx[MAX_SAVED_CONST_INT + 5])
864 : return -1;
865 180 : x21 = XVECEXP (x7, 0, 3);
866 180 : if (x21 != const_int_rtx[MAX_SAVED_CONST_INT + 7])
867 : return -1;
868 180 : x22 = XVECEXP (x7, 0, 4);
869 180 : if (x22 != const_int_rtx[MAX_SAVED_CONST_INT + 9])
870 : return -1;
871 180 : x23 = XVECEXP (x7, 0, 5);
872 180 : if (x23 != const_int_rtx[MAX_SAVED_CONST_INT + 11])
873 : return -1;
874 180 : x24 = XVECEXP (x7, 0, 6);
875 180 : if (x24 != const_int_rtx[MAX_SAVED_CONST_INT + 13])
876 : return -1;
877 180 : x25 = XVECEXP (x7, 0, 7);
878 180 : if (x25 != const_int_rtx[MAX_SAVED_CONST_INT + 15]
879 180 : || pattern198 (x1,
880 : E_V8QImode,
881 : E_V8HImode,
882 : E_V16QImode) != 0)
883 6 : return -1;
884 : return 0;
885 :
886 180 : case 4:
887 180 : x10 = XVECEXP (x4, 0, 0);
888 180 : if (x10 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
889 : return -1;
890 180 : x11 = XVECEXP (x4, 0, 1);
891 180 : if (x11 != const_int_rtx[MAX_SAVED_CONST_INT + 2])
892 : return -1;
893 180 : x12 = XVECEXP (x4, 0, 2);
894 180 : if (x12 != const_int_rtx[MAX_SAVED_CONST_INT + 4])
895 : return -1;
896 180 : x13 = XVECEXP (x4, 0, 3);
897 180 : if (x13 != const_int_rtx[MAX_SAVED_CONST_INT + 6]
898 180 : || XVECLEN (x7, 0) != 4)
899 : return -1;
900 180 : x18 = XVECEXP (x7, 0, 0);
901 180 : if (x18 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
902 : return -1;
903 180 : x19 = XVECEXP (x7, 0, 1);
904 180 : if (x19 != const_int_rtx[MAX_SAVED_CONST_INT + 3])
905 : return -1;
906 180 : x20 = XVECEXP (x7, 0, 2);
907 180 : if (x20 != const_int_rtx[MAX_SAVED_CONST_INT + 5])
908 : return -1;
909 180 : x21 = XVECEXP (x7, 0, 3);
910 180 : if (x21 != const_int_rtx[MAX_SAVED_CONST_INT + 7]
911 180 : || pattern198 (x1,
912 : E_V4HImode,
913 : E_V4SImode,
914 : E_V8HImode) != 0)
915 6 : return -1;
916 : return 1;
917 :
918 208 : case 2:
919 208 : x10 = XVECEXP (x4, 0, 0);
920 208 : if (x10 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
921 : return -1;
922 208 : x11 = XVECEXP (x4, 0, 1);
923 208 : if (x11 != const_int_rtx[MAX_SAVED_CONST_INT + 2]
924 208 : || XVECLEN (x7, 0) != 2)
925 : return -1;
926 208 : x18 = XVECEXP (x7, 0, 0);
927 208 : if (x18 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
928 : return -1;
929 208 : x19 = XVECEXP (x7, 0, 1);
930 208 : if (x19 != const_int_rtx[MAX_SAVED_CONST_INT + 3]
931 208 : || pattern198 (x1,
932 : E_V2SImode,
933 : E_V2DImode,
934 : E_V4SImode) != 0)
935 18 : return -1;
936 : return 2;
937 :
938 : default:
939 : return -1;
940 : }
941 : }
942 :
943 : int
944 2840097 : pattern230 (rtx x1)
945 : {
946 2840097 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
947 2840097 : rtx x2, x3;
948 2840097 : int res ATTRIBUTE_UNUSED;
949 2840097 : if (GET_CODE (x1) != CLOBBER)
950 : return -1;
951 1757812 : x2 = XEXP (x1, 0);
952 1757812 : if (GET_CODE (x2) != MEM
953 1757812 : || GET_MODE (x2) != E_BLKmode)
954 : return -1;
955 1757812 : x3 = XEXP (x2, 0);
956 1757812 : if (GET_CODE (x3) != SCRATCH)
957 0 : return -1;
958 : return 0;
959 : }
960 :
961 : int
962 341188 : pattern238 (rtx x1)
963 : {
964 341188 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
965 341188 : rtx x2, x3;
966 341188 : int res ATTRIBUTE_UNUSED;
967 341188 : x2 = XEXP (x1, 0);
968 341188 : operands[1] = x2;
969 341188 : x3 = XEXP (x1, 1);
970 341188 : operands[2] = x3;
971 341188 : if (!register_operand (operands[2], E_QImode))
972 : return -1;
973 1568 : return pattern132 (x1); /* [-1, 1] */
974 : }
975 :
976 : int
977 1081354 : pattern242 (rtx x1)
978 : {
979 1081354 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
980 1081354 : rtx x2, x3;
981 1081354 : int res ATTRIBUTE_UNUSED;
982 1081354 : x2 = XEXP (x1, 0);
983 1081354 : operands[1] = x2;
984 1081354 : x3 = XEXP (x1, 1);
985 1081354 : operands[2] = x3;
986 1081354 : switch (GET_MODE (operands[0]))
987 : {
988 106988 : case E_QImode:
989 106988 : return pattern241 (x1,
990 106988 : E_QImode); /* [-1, 0] */
991 :
992 22797 : case E_HImode:
993 22797 : if (pattern241 (x1,
994 : E_HImode) != 0)
995 : return -1;
996 : return 1;
997 :
998 130887 : case E_SImode:
999 130887 : if (pattern241 (x1,
1000 : E_SImode) != 0)
1001 : return -1;
1002 : return 2;
1003 :
1004 127956 : case E_DImode:
1005 127956 : if (pattern241 (x1,
1006 : E_DImode) != 0)
1007 : return -1;
1008 : return 3;
1009 :
1010 : default:
1011 : return -1;
1012 : }
1013 : }
1014 :
1015 : int
1016 38024 : pattern253 (rtx x1)
1017 : {
1018 38024 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1019 38024 : rtx x2, x3;
1020 38024 : int res ATTRIBUTE_UNUSED;
1021 38024 : if (GET_CODE (x1) != VEC_SELECT)
1022 : return -1;
1023 2175 : x2 = XEXP (x1, 1);
1024 2175 : if (GET_CODE (x2) != PARALLEL
1025 2175 : || XVECLEN (x2, 0) != 1)
1026 : return -1;
1027 2175 : x3 = XVECEXP (x2, 0, 0);
1028 2175 : if (x3 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
1029 15 : return -1;
1030 : return 0;
1031 : }
1032 :
1033 : int
1034 523 : pattern258 (rtx x1)
1035 : {
1036 523 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1037 523 : rtx x2, x3, x4, x5;
1038 523 : int res ATTRIBUTE_UNUSED;
1039 523 : x2 = XEXP (x1, 1);
1040 523 : x3 = XEXP (x2, 0);
1041 523 : if (GET_MODE (x3) != E_V2QImode)
1042 : return -1;
1043 0 : x4 = XEXP (x1, 0);
1044 0 : operands[0] = x4;
1045 0 : if (!memory_operand (operands[0], E_HImode)
1046 0 : || GET_MODE (x2) != E_HImode)
1047 : return -1;
1048 0 : x5 = XEXP (x3, 0);
1049 0 : operands[1] = x5;
1050 0 : if (!register_operand (operands[1], E_V2DImode))
1051 : return -1;
1052 : return 0;
1053 : }
1054 :
1055 : int
1056 38849 : pattern268 (rtx x1, int *pnum_clobbers)
1057 : {
1058 38849 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1059 38849 : rtx x2, x3, x4, x5;
1060 38849 : int res ATTRIBUTE_UNUSED;
1061 38849 : x2 = XEXP (x1, 1);
1062 38849 : switch (GET_CODE (x2))
1063 : {
1064 8772 : case SUBREG:
1065 8772 : if (pnum_clobbers == NULL
1066 8770 : || maybe_ne (SUBREG_BYTE (x2), 0)
1067 17542 : || GET_MODE (x2) != E_QImode)
1068 : return -1;
1069 8446 : x3 = XEXP (x2, 0);
1070 8446 : switch (GET_CODE (x3))
1071 : {
1072 931 : case AND:
1073 931 : x4 = XEXP (x3, 0);
1074 931 : operands[2] = x4;
1075 931 : if (!int248_register_operand (operands[2], E_VOIDmode))
1076 : return -1;
1077 758 : return pattern267 (x1); /* [-1, 1] */
1078 :
1079 0 : case PLUS:
1080 0 : x4 = XEXP (x3, 0);
1081 0 : operands[2] = x4;
1082 0 : if (!int_nonimmediate_operand (operands[2], E_VOIDmode))
1083 : return -1;
1084 0 : res = pattern267 (x1);
1085 0 : if (res >= 0)
1086 0 : return res + 2; /* [2, 3] */
1087 : return -1;
1088 :
1089 0 : case MINUS:
1090 0 : x4 = XEXP (x3, 0);
1091 0 : operands[3] = x4;
1092 0 : if (!const_int_operand (operands[3], E_VOIDmode))
1093 : return -1;
1094 0 : x5 = XEXP (x3, 1);
1095 0 : operands[2] = x5;
1096 0 : if (!int_nonimmediate_operand (operands[2], E_VOIDmode))
1097 : return -1;
1098 0 : res = pattern0 (x1);
1099 0 : if (res >= 0)
1100 0 : return res + 4; /* [4, 5] */
1101 : return -1;
1102 :
1103 : default:
1104 : return -1;
1105 : }
1106 :
1107 : case CONST_INT:
1108 : return 6;
1109 :
1110 : default:
1111 : return -1;
1112 : }
1113 : }
1114 :
1115 : int
1116 5691294 : pattern292 (rtx x1, machine_mode i1)
1117 : {
1118 5691294 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1119 5691294 : rtx x2, x3, x4, x5;
1120 5691294 : int res ATTRIBUTE_UNUSED;
1121 5691294 : x2 = XEXP (x1, 1);
1122 5691294 : x3 = XEXP (x2, 1);
1123 5691294 : if (GET_CODE (x3) != SUBREG
1124 437862 : || maybe_ne (SUBREG_BYTE (x3), 0)
1125 6129156 : || GET_MODE (x3) != E_QImode)
1126 : return -1;
1127 432759 : x4 = XEXP (x3, 0);
1128 432759 : if (GET_CODE (x4) != AND)
1129 : return -1;
1130 24391 : x5 = XEXP (x1, 0);
1131 24391 : operands[0] = x5;
1132 24391 : return pattern291 (x2,
1133 24391 : i1); /* [-1, 0] */
1134 : }
1135 :
1136 : int
1137 523 : pattern298 (rtx x1)
1138 : {
1139 523 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1140 523 : rtx x2, x3;
1141 523 : int res ATTRIBUTE_UNUSED;
1142 523 : x2 = XEXP (x1, 0);
1143 523 : x3 = XEXP (x2, 0);
1144 523 : operands[1] = x3;
1145 523 : switch (GET_MODE (operands[0]))
1146 : {
1147 2 : case E_SImode:
1148 2 : return pattern296 (x1); /* [-1, 2] */
1149 :
1150 14 : case E_DImode:
1151 14 : res = pattern297 (x1);
1152 14 : if (res >= 0)
1153 3 : return res + 3; /* [3, 8] */
1154 : return -1;
1155 :
1156 : default:
1157 : return -1;
1158 : }
1159 : }
1160 :
1161 : int
1162 56 : pattern304 (rtx x1)
1163 : {
1164 56 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1165 56 : rtx x2;
1166 56 : int res ATTRIBUTE_UNUSED;
1167 56 : if (!register_operand (operands[0], E_SImode)
1168 56 : || GET_MODE (x1) != E_SImode)
1169 : return -1;
1170 56 : x2 = XVECEXP (x1, 0, 0);
1171 56 : switch (GET_MODE (x2))
1172 : {
1173 28 : case E_V32QImode:
1174 28 : if (!vector_operand (operands[1], E_V32QImode)
1175 28 : || !vector_operand (operands[2], E_V32QImode)
1176 56 : || !const0_operand (operands[3], E_V32QImode))
1177 14 : return -1;
1178 : return 0;
1179 :
1180 28 : case E_V32HImode:
1181 28 : if (!vector_operand (operands[1], E_V32HImode)
1182 28 : || !vector_operand (operands[2], E_V32HImode)
1183 56 : || !const0_operand (operands[3], E_V32HImode))
1184 14 : return -1;
1185 : return 1;
1186 :
1187 : default:
1188 : return -1;
1189 : }
1190 : }
1191 :
1192 : int
1193 942 : pattern316 (rtx x1, machine_mode i1, machine_mode i2, machine_mode i3)
1194 : {
1195 942 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1196 942 : rtx x2, x3, x4, x5, x6;
1197 942 : int res ATTRIBUTE_UNUSED;
1198 942 : if (!register_operand (operands[0], i1)
1199 942 : || GET_MODE (x1) != i1)
1200 : return -1;
1201 882 : x2 = XEXP (x1, 0);
1202 882 : if (GET_MODE (x2) != i1)
1203 : return -1;
1204 882 : x3 = XEXP (x2, 0);
1205 882 : if (GET_MODE (x3) != i1)
1206 : return -1;
1207 882 : x4 = XEXP (x3, 0);
1208 882 : if (GET_MODE (x4) != i3
1209 882 : || !nonimmediate_operand (operands[1], i2))
1210 24 : return -1;
1211 858 : x5 = XEXP (x2, 1);
1212 858 : if (GET_MODE (x5) != i1)
1213 : return -1;
1214 858 : x6 = XEXP (x5, 0);
1215 858 : if (GET_MODE (x6) != i3
1216 858 : || !nonimmediate_operand (operands[2], i2)
1217 1692 : || !nonimm_or_0_operand (operands[3], i1))
1218 52 : return -1;
1219 : return 0;
1220 : }
1221 :
1222 : int
1223 61 : pattern324 (rtx x1)
1224 : {
1225 61 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1226 61 : rtx x2;
1227 61 : int res ATTRIBUTE_UNUSED;
1228 61 : x2 = XVECEXP (x1, 0, 0);
1229 61 : operands[1] = x2;
1230 61 : switch (GET_MODE (operands[0]))
1231 : {
1232 14 : case E_V16SImode:
1233 14 : if (!register_operand (operands[0], E_V16SImode)
1234 14 : || GET_MODE (x1) != E_V16SImode
1235 28 : || !memory_operand (operands[1], E_V16SImode))
1236 0 : return -1;
1237 : return 0;
1238 :
1239 14 : case E_V8SImode:
1240 14 : if (!register_operand (operands[0], E_V8SImode)
1241 14 : || GET_MODE (x1) != E_V8SImode
1242 28 : || !memory_operand (operands[1], E_V8SImode))
1243 0 : return -1;
1244 : return 1;
1245 :
1246 14 : case E_V4SImode:
1247 14 : if (!register_operand (operands[0], E_V4SImode)
1248 14 : || GET_MODE (x1) != E_V4SImode
1249 28 : || !memory_operand (operands[1], E_V4SImode))
1250 0 : return -1;
1251 : return 2;
1252 :
1253 0 : case E_V8DImode:
1254 0 : if (!register_operand (operands[0], E_V8DImode)
1255 0 : || GET_MODE (x1) != E_V8DImode
1256 0 : || !memory_operand (operands[1], E_V8DImode))
1257 0 : return -1;
1258 : return 3;
1259 :
1260 0 : case E_V4DImode:
1261 0 : if (!register_operand (operands[0], E_V4DImode)
1262 0 : || GET_MODE (x1) != E_V4DImode
1263 0 : || !memory_operand (operands[1], E_V4DImode))
1264 0 : return -1;
1265 : return 4;
1266 :
1267 0 : case E_V2DImode:
1268 0 : if (!register_operand (operands[0], E_V2DImode)
1269 0 : || GET_MODE (x1) != E_V2DImode
1270 0 : || !memory_operand (operands[1], E_V2DImode))
1271 0 : return -1;
1272 : return 5;
1273 :
1274 0 : case E_V16SFmode:
1275 0 : if (!register_operand (operands[0], E_V16SFmode)
1276 0 : || GET_MODE (x1) != E_V16SFmode
1277 0 : || !memory_operand (operands[1], E_V16SFmode))
1278 0 : return -1;
1279 : return 6;
1280 :
1281 0 : case E_V8SFmode:
1282 0 : if (!register_operand (operands[0], E_V8SFmode)
1283 0 : || GET_MODE (x1) != E_V8SFmode
1284 0 : || !memory_operand (operands[1], E_V8SFmode))
1285 0 : return -1;
1286 : return 7;
1287 :
1288 0 : case E_V4SFmode:
1289 0 : if (!register_operand (operands[0], E_V4SFmode)
1290 0 : || GET_MODE (x1) != E_V4SFmode
1291 0 : || !memory_operand (operands[1], E_V4SFmode))
1292 0 : return -1;
1293 : return 8;
1294 :
1295 19 : case E_V8DFmode:
1296 19 : if (!register_operand (operands[0], E_V8DFmode)
1297 19 : || GET_MODE (x1) != E_V8DFmode
1298 38 : || !memory_operand (operands[1], E_V8DFmode))
1299 0 : return -1;
1300 : return 9;
1301 :
1302 0 : case E_V4DFmode:
1303 0 : if (!register_operand (operands[0], E_V4DFmode)
1304 0 : || GET_MODE (x1) != E_V4DFmode
1305 0 : || !memory_operand (operands[1], E_V4DFmode))
1306 0 : return -1;
1307 : return 10;
1308 :
1309 0 : case E_V2DFmode:
1310 0 : if (!register_operand (operands[0], E_V2DFmode)
1311 0 : || GET_MODE (x1) != E_V2DFmode
1312 0 : || !memory_operand (operands[1], E_V2DFmode))
1313 0 : return -1;
1314 : return 11;
1315 :
1316 0 : case E_V64QImode:
1317 0 : if (!register_operand (operands[0], E_V64QImode)
1318 0 : || GET_MODE (x1) != E_V64QImode
1319 0 : || !memory_operand (operands[1], E_V64QImode))
1320 0 : return -1;
1321 : return 12;
1322 :
1323 0 : case E_V16QImode:
1324 0 : if (!register_operand (operands[0], E_V16QImode)
1325 0 : || GET_MODE (x1) != E_V16QImode
1326 0 : || !memory_operand (operands[1], E_V16QImode))
1327 0 : return -1;
1328 : return 13;
1329 :
1330 0 : case E_V32QImode:
1331 0 : if (!register_operand (operands[0], E_V32QImode)
1332 0 : || GET_MODE (x1) != E_V32QImode
1333 0 : || !memory_operand (operands[1], E_V32QImode))
1334 0 : return -1;
1335 : return 14;
1336 :
1337 0 : case E_V32HImode:
1338 0 : if (!register_operand (operands[0], E_V32HImode)
1339 0 : || GET_MODE (x1) != E_V32HImode
1340 0 : || !memory_operand (operands[1], E_V32HImode))
1341 0 : return -1;
1342 : return 15;
1343 :
1344 0 : case E_V16HImode:
1345 0 : if (!register_operand (operands[0], E_V16HImode)
1346 0 : || GET_MODE (x1) != E_V16HImode
1347 0 : || !memory_operand (operands[1], E_V16HImode))
1348 0 : return -1;
1349 : return 16;
1350 :
1351 0 : case E_V8HImode:
1352 0 : if (!register_operand (operands[0], E_V8HImode)
1353 0 : || GET_MODE (x1) != E_V8HImode
1354 0 : || !memory_operand (operands[1], E_V8HImode))
1355 0 : return -1;
1356 : return 17;
1357 :
1358 0 : case E_V32HFmode:
1359 0 : if (!register_operand (operands[0], E_V32HFmode)
1360 0 : || GET_MODE (x1) != E_V32HFmode
1361 0 : || !memory_operand (operands[1], E_V32HFmode))
1362 0 : return -1;
1363 : return 18;
1364 :
1365 0 : case E_V16HFmode:
1366 0 : if (!register_operand (operands[0], E_V16HFmode)
1367 0 : || GET_MODE (x1) != E_V16HFmode
1368 0 : || !memory_operand (operands[1], E_V16HFmode))
1369 0 : return -1;
1370 : return 19;
1371 :
1372 0 : case E_V8HFmode:
1373 0 : if (!register_operand (operands[0], E_V8HFmode)
1374 0 : || GET_MODE (x1) != E_V8HFmode
1375 0 : || !memory_operand (operands[1], E_V8HFmode))
1376 0 : return -1;
1377 : return 20;
1378 :
1379 0 : case E_V32BFmode:
1380 0 : if (!register_operand (operands[0], E_V32BFmode)
1381 0 : || GET_MODE (x1) != E_V32BFmode
1382 0 : || !memory_operand (operands[1], E_V32BFmode))
1383 0 : return -1;
1384 : return 21;
1385 :
1386 0 : case E_V16BFmode:
1387 0 : if (!register_operand (operands[0], E_V16BFmode)
1388 0 : || GET_MODE (x1) != E_V16BFmode
1389 0 : || !memory_operand (operands[1], E_V16BFmode))
1390 0 : return -1;
1391 : return 22;
1392 :
1393 0 : case E_V8BFmode:
1394 0 : if (!register_operand (operands[0], E_V8BFmode)
1395 0 : || GET_MODE (x1) != E_V8BFmode
1396 0 : || !memory_operand (operands[1], E_V8BFmode))
1397 0 : return -1;
1398 : return 23;
1399 :
1400 : default:
1401 : return -1;
1402 : }
1403 : }
1404 :
1405 : int
1406 22477 : pattern363 (rtx x1)
1407 : {
1408 22477 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1409 22477 : rtx x2, x3, x4, x5, x6;
1410 22477 : int res ATTRIBUTE_UNUSED;
1411 22477 : x2 = XEXP (x1, 0);
1412 22477 : operands[0] = x2;
1413 22477 : x3 = XEXP (x1, 1);
1414 22477 : x4 = XEXP (x3, 0);
1415 22477 : x5 = XEXP (x4, 0);
1416 22477 : operands[2] = x5;
1417 22477 : if (!int_nonimmediate_operand (operands[2], E_VOIDmode))
1418 : return -1;
1419 4320 : x6 = XEXP (x3, 1);
1420 4320 : operands[1] = x6;
1421 4320 : switch (GET_MODE (operands[0]))
1422 : {
1423 46 : case E_QImode:
1424 46 : return pattern361 (x3,
1425 46 : E_QImode); /* [-1, 0] */
1426 :
1427 17 : case E_HImode:
1428 17 : if (pattern361 (x3,
1429 : E_HImode) != 0)
1430 : return -1;
1431 : return 1;
1432 :
1433 2578 : case E_SImode:
1434 2578 : if (pattern362 (x3,
1435 : E_SImode) != 0)
1436 : return -1;
1437 : return 2;
1438 :
1439 1679 : case E_DImode:
1440 1679 : if (pattern362 (x3,
1441 : E_DImode) != 0)
1442 : return -1;
1443 : return 3;
1444 :
1445 : default:
1446 : return -1;
1447 : }
1448 : }
1449 :
1450 : int
1451 264 : pattern372 (rtx x1, machine_mode i1)
1452 : {
1453 264 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1454 264 : rtx x2;
1455 264 : int res ATTRIBUTE_UNUSED;
1456 264 : if (!register_operand (operands[0], i1)
1457 264 : || GET_MODE (x1) != i1)
1458 : return -1;
1459 230 : x2 = XEXP (x1, 0);
1460 230 : if (GET_MODE (x2) != i1
1461 230 : || !register_operand (operands[3], i1))
1462 182 : return -1;
1463 : return 0;
1464 : }
1465 :
1466 : int
1467 298140 : pattern375 (rtx x1)
1468 : {
1469 298140 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1470 298140 : rtx x2;
1471 298140 : int res ATTRIBUTE_UNUSED;
1472 298140 : if (GET_CODE (x1) != CLOBBER)
1473 : return -1;
1474 286306 : x2 = XEXP (x1, 0);
1475 286306 : if (GET_CODE (x2) != REG
1476 286306 : || REGNO (x2) != 17
1477 572612 : || GET_MODE (x2) != E_CCmode)
1478 0 : return -1;
1479 : return 0;
1480 : }
1481 :
1482 : int
1483 679 : pattern380 (rtx x1)
1484 : {
1485 679 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1486 679 : rtx x2, x3, x4, x5, x6, x7, x8;
1487 679 : int res ATTRIBUTE_UNUSED;
1488 679 : x2 = XVECEXP (x1, 0, 0);
1489 679 : x3 = XEXP (x2, 0);
1490 679 : operands[0] = x3;
1491 679 : x4 = XEXP (x2, 1);
1492 679 : x5 = XEXP (x4, 0);
1493 679 : x6 = XEXP (x5, 0);
1494 679 : operands[1] = x6;
1495 679 : x7 = XVECEXP (x1, 0, 1);
1496 679 : switch (GET_CODE (x7))
1497 : {
1498 482 : case CLOBBER:
1499 482 : x8 = XEXP (x7, 0);
1500 482 : if (GET_CODE (x8) != REG
1501 482 : || REGNO (x8) != 17
1502 961 : || GET_MODE (x8) != E_CCmode)
1503 : return -1;
1504 479 : switch (GET_MODE (operands[0]))
1505 : {
1506 16 : case E_DImode:
1507 16 : return pattern379 (x4,
1508 16 : E_DImode); /* [-1, 0] */
1509 :
1510 0 : case E_TImode:
1511 0 : if (pattern379 (x4,
1512 : E_TImode) != 0)
1513 : return -1;
1514 : return 1;
1515 :
1516 0 : case E_QImode:
1517 0 : if (pattern379 (x4,
1518 : E_QImode) != 0)
1519 : return -1;
1520 : return 2;
1521 :
1522 0 : case E_HImode:
1523 0 : if (pattern379 (x4,
1524 : E_HImode) != 0)
1525 : return -1;
1526 : return 3;
1527 :
1528 190 : case E_SImode:
1529 190 : if (pattern379 (x4,
1530 : E_SImode) != 0)
1531 : return -1;
1532 : return 4;
1533 :
1534 : default:
1535 : return -1;
1536 : }
1537 :
1538 5 : case USE:
1539 5 : x8 = XEXP (x7, 0);
1540 5 : operands[2] = x8;
1541 5 : return 5;
1542 :
1543 : default:
1544 : return -1;
1545 : }
1546 : }
1547 :
1548 : int
1549 129956 : pattern397 (rtx x1, int i1)
1550 : {
1551 129956 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1552 129956 : rtx x2;
1553 129956 : int res ATTRIBUTE_UNUSED;
1554 129956 : if (XINT (x1, 1) != i1
1555 275 : || GET_MODE (x1) != E_SImode)
1556 : return -1;
1557 275 : x2 = XVECEXP (x1, 0, 1);
1558 275 : if (GET_CODE (x2) != REG
1559 267 : || REGNO (x2) != 20
1560 518 : || GET_MODE (x2) != E_V2DImode)
1561 32 : return -1;
1562 : return 0;
1563 : }
1564 :
1565 : int
1566 0 : pattern403 (rtx x1)
1567 : {
1568 0 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1569 0 : rtx x2, x3, x4;
1570 0 : int res ATTRIBUTE_UNUSED;
1571 0 : x2 = XEXP (x1, 1);
1572 0 : x3 = XEXP (x2, 0);
1573 0 : x4 = XEXP (x3, 0);
1574 0 : operands[2] = x4;
1575 0 : switch (GET_MODE (operands[0]))
1576 : {
1577 0 : case E_DImode:
1578 0 : return pattern402 (x1,
1579 : E_SImode,
1580 0 : E_DImode); /* [-1, 0] */
1581 :
1582 0 : case E_TImode:
1583 0 : if (pattern402 (x1,
1584 : E_DImode,
1585 : E_TImode) != 0)
1586 : return -1;
1587 : return 1;
1588 :
1589 : default:
1590 : return -1;
1591 : }
1592 : }
1593 :
1594 : int
1595 18 : pattern413 (rtx x1, machine_mode i1, machine_mode i2)
1596 : {
1597 18 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1598 18 : rtx x2, x3, x4, x5, x6, x7;
1599 18 : int res ATTRIBUTE_UNUSED;
1600 18 : x2 = XEXP (x1, 0);
1601 18 : x3 = XEXP (x2, 0);
1602 18 : x4 = XEXP (x3, 1);
1603 18 : x5 = XVECEXP (x4, 0, 0);
1604 18 : if (x5 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
1605 : return -1;
1606 18 : x6 = XVECEXP (x4, 0, 1);
1607 18 : if (x6 != const_int_rtx[MAX_SAVED_CONST_INT + 1]
1608 18 : || !register_operand (operands[0], E_V2DImode)
1609 12 : || GET_MODE (x1) != E_V2DImode
1610 12 : || GET_MODE (x2) != E_V2DImode
1611 30 : || GET_MODE (x3) != i2)
1612 6 : return -1;
1613 12 : x7 = XEXP (x3, 0);
1614 12 : if (GET_MODE (x7) != i1
1615 12 : || !nonimm_or_0_operand (operands[2], E_V2DImode))
1616 0 : return -1;
1617 : return 0;
1618 : }
1619 :
1620 : int
1621 26333 : pattern417 (rtx x1, machine_mode i1)
1622 : {
1623 26333 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1624 26333 : int res ATTRIBUTE_UNUSED;
1625 26333 : if (!register_operand (operands[0], i1)
1626 26333 : || GET_MODE (x1) != i1)
1627 : return -1;
1628 26333 : switch (GET_MODE (operands[1]))
1629 : {
1630 7287 : case E_SFmode:
1631 7287 : if (!memory_operand (operands[1], E_SFmode))
1632 : return -1;
1633 : return 0;
1634 :
1635 19029 : case E_DFmode:
1636 19029 : if (!memory_operand (operands[1], E_DFmode))
1637 : return -1;
1638 : return 1;
1639 :
1640 : default:
1641 : return -1;
1642 : }
1643 : }
1644 :
1645 : int
1646 3895 : pattern424 (rtx x1)
1647 : {
1648 3895 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1649 3895 : rtx x2, x3, x4;
1650 3895 : int res ATTRIBUTE_UNUSED;
1651 3895 : if (GET_CODE (x1) != ZERO_EXTRACT)
1652 : return -1;
1653 2415 : x2 = XEXP (x1, 1);
1654 2415 : if (x2 != const_int_rtx[MAX_SAVED_CONST_INT + 8])
1655 : return -1;
1656 368 : x3 = XEXP (x1, 2);
1657 368 : if (x3 != const_int_rtx[MAX_SAVED_CONST_INT + 8])
1658 : return -1;
1659 368 : x4 = XEXP (x1, 0);
1660 368 : operands[0] = x4;
1661 368 : if (!int248_register_operand (operands[0], E_VOIDmode))
1662 : return -1;
1663 : return 0;
1664 : }
1665 :
1666 : int
1667 2148519 : pattern431 (rtx x1)
1668 : {
1669 2148519 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1670 2148519 : rtx x2, x3, x4, x5;
1671 2148519 : int res ATTRIBUTE_UNUSED;
1672 2148519 : x2 = XEXP (x1, 0);
1673 2148519 : x3 = XEXP (x2, 0);
1674 2148519 : operands[1] = x3;
1675 2148519 : x4 = XEXP (x2, 1);
1676 2148519 : operands[2] = x4;
1677 2148519 : x5 = XEXP (x1, 1);
1678 2148519 : operands[3] = x5;
1679 2148519 : switch (GET_MODE (operands[0]))
1680 : {
1681 2596 : case E_QImode:
1682 2596 : return pattern430 (x1,
1683 2596 : E_QImode); /* [-1, 0] */
1684 :
1685 2958 : case E_HImode:
1686 2958 : if (pattern430 (x1,
1687 : E_HImode) != 0)
1688 : return -1;
1689 : return 1;
1690 :
1691 : default:
1692 : return -1;
1693 : }
1694 : }
1695 :
1696 : int
1697 9240 : pattern438 (rtx x1, int *pnum_clobbers)
1698 : {
1699 9240 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1700 9240 : rtx x2, x3, x4, x5, x6;
1701 9240 : int res ATTRIBUTE_UNUSED;
1702 9240 : if (pnum_clobbers == NULL)
1703 : return -1;
1704 9240 : x2 = XEXP (x1, 1);
1705 9240 : x3 = XEXP (x2, 1);
1706 9240 : x4 = XEXP (x3, 1);
1707 9240 : if (x4 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
1708 : return -1;
1709 7603 : x5 = XEXP (x1, 0);
1710 7603 : operands[0] = x5;
1711 7603 : x6 = XEXP (x3, 0);
1712 7603 : operands[2] = x6;
1713 7603 : if (!int_nonimmediate_operand (operands[2], E_VOIDmode))
1714 : return -1;
1715 3825 : switch (GET_MODE (operands[0]))
1716 : {
1717 114 : case E_QImode:
1718 114 : return pattern437 (x2,
1719 114 : E_QImode); /* [-1, 0] */
1720 :
1721 3 : case E_HImode:
1722 3 : if (pattern437 (x2,
1723 : E_HImode) != 0)
1724 : return -1;
1725 : return 1;
1726 :
1727 : default:
1728 : return -1;
1729 : }
1730 : }
1731 :
1732 : int
1733 115633 : pattern451 (rtx x1, machine_mode i1)
1734 : {
1735 115633 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1736 115633 : rtx x2, x3, x4, x5, x6, x7;
1737 115633 : int res ATTRIBUTE_UNUSED;
1738 115633 : x2 = XEXP (x1, 1);
1739 115633 : x3 = XEXP (x2, 1);
1740 115633 : if (maybe_ne (SUBREG_BYTE (x3), 0)
1741 115633 : || GET_MODE (x3) != E_QImode)
1742 : return -1;
1743 113669 : x4 = XEXP (x1, 0);
1744 113669 : operands[0] = x4;
1745 113669 : if (!nonimmediate_operand (operands[0], i1)
1746 51604 : || GET_MODE (x2) != i1
1747 165273 : || !nonimmediate_operand (operands[1], i1))
1748 103311 : return -1;
1749 10358 : x5 = XEXP (x3, 0);
1750 10358 : switch (GET_CODE (x5))
1751 : {
1752 2346 : case AND:
1753 2346 : x6 = XEXP (x5, 0);
1754 2346 : operands[2] = x6;
1755 2346 : if (!int248_register_operand (operands[2], E_VOIDmode))
1756 : return -1;
1757 611 : x7 = XEXP (x5, 1);
1758 611 : operands[3] = x7;
1759 611 : if (!const_int_operand (operands[3], E_VOIDmode))
1760 : return -1;
1761 : return 0;
1762 :
1763 0 : case PLUS:
1764 0 : x6 = XEXP (x5, 0);
1765 0 : operands[2] = x6;
1766 0 : if (!int248_register_operand (operands[2], E_VOIDmode))
1767 : return -1;
1768 0 : x7 = XEXP (x5, 1);
1769 0 : operands[3] = x7;
1770 0 : if (!const_int_operand (operands[3], E_VOIDmode))
1771 : return -1;
1772 : return 1;
1773 :
1774 0 : case MINUS:
1775 0 : x6 = XEXP (x5, 0);
1776 0 : operands[3] = x6;
1777 0 : if (!const_int_operand (operands[3], E_VOIDmode))
1778 : return -1;
1779 0 : x7 = XEXP (x5, 1);
1780 0 : operands[2] = x7;
1781 0 : if (!int248_register_operand (operands[2], E_VOIDmode))
1782 : return -1;
1783 : return 2;
1784 :
1785 : default:
1786 : return -1;
1787 : }
1788 : }
1789 :
1790 : int
1791 2084 : pattern468 (rtx x1, machine_mode i1, machine_mode i2, machine_mode i3, machine_mode i4)
1792 : {
1793 2084 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1794 2084 : rtx x2;
1795 2084 : int res ATTRIBUTE_UNUSED;
1796 2084 : if (!register_operand (operands[0], i2)
1797 2084 : || GET_MODE (x1) != i2)
1798 : return -1;
1799 2028 : x2 = XEXP (x1, 0);
1800 2028 : if (GET_MODE (x2) != i2
1801 2028 : || !register_operand (operands[1], i4)
1802 2028 : || !nonimmediate_operand (operands[2], i3)
1803 2028 : || !nonimm_or_0_operand (operands[3], i2)
1804 4000 : || !register_operand (operands[4], i1))
1805 144 : return -1;
1806 : return 0;
1807 : }
1808 :
1809 : int
1810 1988 : pattern476 (rtx x1, machine_mode i1)
1811 : {
1812 1988 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1813 1988 : rtx x2, x3, x4, x5, x6, x7;
1814 1988 : int res ATTRIBUTE_UNUSED;
1815 1988 : x2 = XEXP (x1, 0);
1816 1988 : x3 = XVECEXP (x2, 0, 0);
1817 1988 : operands[1] = x3;
1818 1988 : x4 = XVECEXP (x2, 0, 1);
1819 1988 : operands[2] = x4;
1820 1988 : x5 = XVECEXP (x2, 0, 2);
1821 1988 : operands[3] = x5;
1822 1988 : if (!const_0_to_255_operand (operands[3], i1))
1823 : return -1;
1824 1988 : x6 = XEXP (x1, 1);
1825 1988 : operands[4] = x6;
1826 1988 : x7 = XEXP (x1, 2);
1827 1988 : operands[5] = x7;
1828 1988 : switch (GET_MODE (operands[0]))
1829 : {
1830 684 : case E_V64QImode:
1831 684 : return pattern475 (x1,
1832 : E_V64QImode,
1833 684 : E_DImode); /* [-1, 0] */
1834 :
1835 669 : case E_V32QImode:
1836 669 : if (pattern475 (x1,
1837 : E_V32QImode,
1838 : E_SImode) != 0)
1839 : return -1;
1840 : return 1;
1841 :
1842 635 : case E_V16QImode:
1843 635 : if (pattern475 (x1,
1844 : E_V16QImode,
1845 : E_HImode) != 0)
1846 : return -1;
1847 : return 2;
1848 :
1849 : default:
1850 : return -1;
1851 : }
1852 : }
1853 :
1854 : int
1855 3840 : pattern485 (rtx x1)
1856 : {
1857 3840 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1858 3840 : rtx x2, x3, x4, x5, x6, x7;
1859 3840 : int res ATTRIBUTE_UNUSED;
1860 3840 : x2 = XEXP (x1, 0);
1861 3840 : x3 = XVECEXP (x2, 0, 0);
1862 3840 : operands[1] = x3;
1863 3840 : x4 = XVECEXP (x2, 0, 1);
1864 3840 : operands[2] = x4;
1865 3840 : x5 = XVECEXP (x2, 0, 2);
1866 3840 : operands[3] = x5;
1867 3840 : x6 = XEXP (x1, 1);
1868 3840 : switch (GET_CODE (x6))
1869 : {
1870 1900 : case REG:
1871 1900 : case SUBREG:
1872 1900 : if (!rtx_equal_p (x6, operands[1]))
1873 : return -1;
1874 1900 : x7 = XEXP (x1, 2);
1875 1900 : operands[4] = x7;
1876 1900 : switch (GET_MODE (operands[0]))
1877 : {
1878 216 : case E_V32HImode:
1879 216 : return pattern482 (x1,
1880 : E_V32HImode,
1881 216 : E_SImode); /* [-1, 0] */
1882 :
1883 210 : case E_V16SImode:
1884 210 : if (pattern482 (x1,
1885 : E_V16SImode,
1886 : E_HImode) != 0)
1887 : return -1;
1888 : return 1;
1889 :
1890 216 : case E_V8DImode:
1891 216 : if (pattern482 (x1,
1892 : E_V8DImode,
1893 : E_QImode) != 0)
1894 : return -1;
1895 : return 2;
1896 :
1897 216 : case E_V16HImode:
1898 216 : if (pattern482 (x1,
1899 : E_V16HImode,
1900 : E_HImode) != 0)
1901 : return -1;
1902 : return 3;
1903 :
1904 210 : case E_V8SImode:
1905 210 : if (pattern482 (x1,
1906 : E_V8SImode,
1907 : E_QImode) != 0)
1908 : return -1;
1909 : return 4;
1910 :
1911 216 : case E_V4DImode:
1912 216 : if (pattern482 (x1,
1913 : E_V4DImode,
1914 : E_QImode) != 0)
1915 : return -1;
1916 : return 5;
1917 :
1918 210 : case E_V8HImode:
1919 210 : if (pattern482 (x1,
1920 : E_V8HImode,
1921 : E_QImode) != 0)
1922 : return -1;
1923 : return 6;
1924 :
1925 200 : case E_V4SImode:
1926 200 : if (pattern482 (x1,
1927 : E_V4SImode,
1928 : E_QImode) != 0)
1929 : return -1;
1930 : return 7;
1931 :
1932 206 : case E_V2DImode:
1933 206 : if (pattern482 (x1,
1934 : E_V2DImode,
1935 : E_QImode) != 0)
1936 : return -1;
1937 : return 8;
1938 :
1939 : default:
1940 : return -1;
1941 : }
1942 :
1943 1908 : case CONST_INT:
1944 1908 : case CONST_DOUBLE:
1945 1908 : case CONST_VECTOR:
1946 1908 : operands[4] = x6;
1947 1908 : x7 = XEXP (x1, 2);
1948 1908 : operands[5] = x7;
1949 1908 : switch (GET_MODE (operands[0]))
1950 : {
1951 216 : case E_V32HImode:
1952 216 : if (pattern484 (x1,
1953 : E_V32HImode,
1954 : E_SImode) != 0)
1955 : return -1;
1956 : return 9;
1957 :
1958 214 : case E_V16SImode:
1959 214 : if (pattern484 (x1,
1960 : E_V16SImode,
1961 : E_HImode) != 0)
1962 : return -1;
1963 : return 10;
1964 :
1965 220 : case E_V8DImode:
1966 220 : if (pattern484 (x1,
1967 : E_V8DImode,
1968 : E_QImode) != 0)
1969 : return -1;
1970 : return 11;
1971 :
1972 214 : case E_V16HImode:
1973 214 : if (pattern484 (x1,
1974 : E_V16HImode,
1975 : E_HImode) != 0)
1976 : return -1;
1977 : return 12;
1978 :
1979 212 : case E_V8SImode:
1980 212 : if (pattern484 (x1,
1981 : E_V8SImode,
1982 : E_QImode) != 0)
1983 : return -1;
1984 : return 13;
1985 :
1986 218 : case E_V4DImode:
1987 218 : if (pattern484 (x1,
1988 : E_V4DImode,
1989 : E_QImode) != 0)
1990 : return -1;
1991 : return 14;
1992 :
1993 206 : case E_V8HImode:
1994 206 : if (pattern484 (x1,
1995 : E_V8HImode,
1996 : E_QImode) != 0)
1997 : return -1;
1998 : return 15;
1999 :
2000 202 : case E_V4SImode:
2001 202 : if (pattern484 (x1,
2002 : E_V4SImode,
2003 : E_QImode) != 0)
2004 : return -1;
2005 : return 16;
2006 :
2007 206 : case E_V2DImode:
2008 206 : if (pattern484 (x1,
2009 : E_V2DImode,
2010 : E_QImode) != 0)
2011 : return -1;
2012 : return 17;
2013 :
2014 : default:
2015 : return -1;
2016 : }
2017 :
2018 : default:
2019 : return -1;
2020 : }
2021 : }
2022 :
2023 : int
2024 5935 : pattern511 (rtx x1)
2025 : {
2026 5935 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
2027 5935 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
2028 5935 : rtx x10, x11, x12, x13, x14, x15, x16, x17;
2029 5935 : rtx x18, x19, x20, x21, x22, x23, x24, x25;
2030 5935 : rtx x26, x27, x28, x29, x30, x31, x32, x33;
2031 5935 : rtx x34, x35, x36, x37, x38, x39;
2032 5935 : int res ATTRIBUTE_UNUSED;
2033 5935 : x2 = XEXP (x1, 1);
2034 5935 : if (GET_CODE (x2) != CONST_VECTOR)
2035 : return -1;
2036 5935 : x3 = XEXP (x1, 0);
2037 5935 : x4 = XEXP (x3, 0);
2038 5935 : x5 = XEXP (x4, 0);
2039 5935 : operands[1] = x5;
2040 5935 : x6 = XEXP (x3, 1);
2041 5935 : switch (GET_CODE (x6))
2042 : {
2043 4114 : case VEC_SELECT:
2044 4114 : x7 = XEXP (x6, 1);
2045 4114 : if (GET_CODE (x7) != PARALLEL)
2046 : return -1;
2047 4114 : x8 = XEXP (x6, 0);
2048 4114 : operands[2] = x8;
2049 4114 : x9 = XEXP (x3, 2);
2050 4114 : operands[3] = x9;
2051 4114 : switch (XVECLEN (x7, 0))
2052 : {
2053 1228 : case 2:
2054 1228 : x10 = XVECEXP (x7, 0, 0);
2055 1228 : if (x10 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
2056 : return -1;
2057 1228 : x11 = XVECEXP (x7, 0, 1);
2058 1228 : if (x11 != const_int_rtx[MAX_SAVED_CONST_INT + 1]
2059 1228 : || !register_operand (operands[1], E_V2DImode))
2060 0 : return -1;
2061 1228 : switch (XVECLEN (x2, 0))
2062 : {
2063 411 : case 14:
2064 411 : if (GET_MODE (x2) != E_V14QImode)
2065 : return -1;
2066 411 : x12 = XVECEXP (x2, 0, 0);
2067 411 : if (x12 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
2068 : return -1;
2069 411 : x13 = XVECEXP (x2, 0, 1);
2070 411 : if (x13 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
2071 : return -1;
2072 411 : x14 = XVECEXP (x2, 0, 2);
2073 411 : if (x14 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
2074 : return -1;
2075 411 : x15 = XVECEXP (x2, 0, 3);
2076 411 : if (x15 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
2077 : return -1;
2078 411 : x16 = XVECEXP (x2, 0, 4);
2079 411 : if (x16 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
2080 : return -1;
2081 411 : x17 = XVECEXP (x2, 0, 5);
2082 411 : if (x17 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
2083 : return -1;
2084 411 : x18 = XVECEXP (x2, 0, 6);
2085 411 : if (x18 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
2086 : return -1;
2087 411 : x19 = XVECEXP (x2, 0, 7);
2088 411 : if (x19 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
2089 : return -1;
2090 411 : x20 = XVECEXP (x2, 0, 8);
2091 411 : if (x20 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
2092 : return -1;
2093 411 : x21 = XVECEXP (x2, 0, 9);
2094 411 : if (x21 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
2095 : return -1;
2096 411 : x22 = XVECEXP (x2, 0, 10);
2097 411 : if (x22 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
2098 : return -1;
2099 411 : x23 = XVECEXP (x2, 0, 11);
2100 411 : if (x23 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
2101 : return -1;
2102 411 : x24 = XVECEXP (x2, 0, 12);
2103 411 : if (x24 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
2104 : return -1;
2105 411 : x25 = XVECEXP (x2, 0, 13);
2106 411 : if (x25 != const_int_rtx[MAX_SAVED_CONST_INT + 0]
2107 411 : || pattern506 (x1,
2108 : E_V16QImode,
2109 : E_V2QImode) != 0)
2110 11 : return -1;
2111 : return 0;
2112 :
2113 424 : case 6:
2114 424 : if (GET_MODE (x2) != E_V6HImode)
2115 : return -1;
2116 424 : x12 = XVECEXP (x2, 0, 0);
2117 424 : if (x12 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
2118 : return -1;
2119 424 : x13 = XVECEXP (x2, 0, 1);
2120 424 : if (x13 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
2121 : return -1;
2122 424 : x14 = XVECEXP (x2, 0, 2);
2123 424 : if (x14 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
2124 : return -1;
2125 424 : x15 = XVECEXP (x2, 0, 3);
2126 424 : if (x15 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
2127 : return -1;
2128 424 : x16 = XVECEXP (x2, 0, 4);
2129 424 : if (x16 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
2130 : return -1;
2131 424 : x17 = XVECEXP (x2, 0, 5);
2132 424 : if (x17 != const_int_rtx[MAX_SAVED_CONST_INT + 0]
2133 424 : || pattern506 (x1,
2134 : E_V8HImode,
2135 : E_V2HImode) != 0)
2136 23 : return -1;
2137 : return 1;
2138 :
2139 393 : case 2:
2140 393 : if (GET_MODE (x2) != E_V2SImode)
2141 : return -1;
2142 393 : x12 = XVECEXP (x2, 0, 0);
2143 393 : if (x12 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
2144 : return -1;
2145 393 : x13 = XVECEXP (x2, 0, 1);
2146 393 : if (x13 != const_int_rtx[MAX_SAVED_CONST_INT + 0]
2147 393 : || pattern506 (x1,
2148 : E_V4SImode,
2149 : E_V2SImode) != 0)
2150 3 : return -1;
2151 : return 2;
2152 :
2153 : default:
2154 : return -1;
2155 : }
2156 :
2157 1662 : case 4:
2158 1662 : x10 = XVECEXP (x7, 0, 0);
2159 1662 : if (x10 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
2160 : return -1;
2161 1662 : x11 = XVECEXP (x7, 0, 1);
2162 1662 : if (x11 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
2163 : return -1;
2164 1662 : x26 = XVECEXP (x7, 0, 2);
2165 1662 : if (x26 != const_int_rtx[MAX_SAVED_CONST_INT + 2])
2166 : return -1;
2167 1662 : x27 = XVECEXP (x7, 0, 3);
2168 1662 : if (x27 != const_int_rtx[MAX_SAVED_CONST_INT + 3])
2169 : return -1;
2170 1662 : switch (XVECLEN (x2, 0))
2171 : {
2172 828 : case 12:
2173 828 : if (GET_MODE (x2) != E_V12QImode)
2174 : return -1;
2175 828 : x12 = XVECEXP (x2, 0, 0);
2176 828 : if (x12 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
2177 : return -1;
2178 828 : x13 = XVECEXP (x2, 0, 1);
2179 828 : if (x13 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
2180 : return -1;
2181 828 : x14 = XVECEXP (x2, 0, 2);
2182 828 : if (x14 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
2183 : return -1;
2184 828 : x15 = XVECEXP (x2, 0, 3);
2185 828 : if (x15 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
2186 : return -1;
2187 828 : x16 = XVECEXP (x2, 0, 4);
2188 828 : if (x16 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
2189 : return -1;
2190 828 : x17 = XVECEXP (x2, 0, 5);
2191 828 : if (x17 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
2192 : return -1;
2193 828 : x18 = XVECEXP (x2, 0, 6);
2194 828 : if (x18 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
2195 : return -1;
2196 828 : x19 = XVECEXP (x2, 0, 7);
2197 828 : if (x19 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
2198 : return -1;
2199 828 : x20 = XVECEXP (x2, 0, 8);
2200 828 : if (x20 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
2201 : return -1;
2202 828 : x21 = XVECEXP (x2, 0, 9);
2203 828 : if (x21 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
2204 : return -1;
2205 828 : x22 = XVECEXP (x2, 0, 10);
2206 828 : if (x22 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
2207 : return -1;
2208 828 : x23 = XVECEXP (x2, 0, 11);
2209 828 : if (x23 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
2210 : return -1;
2211 828 : res = pattern507 (x1,
2212 : E_V16QImode,
2213 : E_V4QImode);
2214 828 : if (res >= 0)
2215 805 : return res + 3; /* [3, 4] */
2216 : return -1;
2217 :
2218 834 : case 4:
2219 834 : if (GET_MODE (x2) != E_V4HImode)
2220 : return -1;
2221 834 : x12 = XVECEXP (x2, 0, 0);
2222 834 : if (x12 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
2223 : return -1;
2224 834 : x13 = XVECEXP (x2, 0, 1);
2225 834 : if (x13 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
2226 : return -1;
2227 834 : x14 = XVECEXP (x2, 0, 2);
2228 834 : if (x14 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
2229 : return -1;
2230 834 : x15 = XVECEXP (x2, 0, 3);
2231 834 : if (x15 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
2232 : return -1;
2233 834 : res = pattern507 (x1,
2234 : E_V8HImode,
2235 : E_V4HImode);
2236 834 : if (res >= 0)
2237 823 : return res + 5; /* [5, 6] */
2238 : return -1;
2239 :
2240 : default:
2241 : return -1;
2242 : }
2243 :
2244 1224 : case 8:
2245 1224 : x10 = XVECEXP (x7, 0, 0);
2246 1224 : if (x10 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
2247 : return -1;
2248 1224 : x11 = XVECEXP (x7, 0, 1);
2249 1224 : if (x11 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
2250 : return -1;
2251 1224 : x26 = XVECEXP (x7, 0, 2);
2252 1224 : if (x26 != const_int_rtx[MAX_SAVED_CONST_INT + 2])
2253 : return -1;
2254 1224 : x27 = XVECEXP (x7, 0, 3);
2255 1224 : if (x27 != const_int_rtx[MAX_SAVED_CONST_INT + 3])
2256 : return -1;
2257 1224 : x28 = XVECEXP (x7, 0, 4);
2258 1224 : if (x28 != const_int_rtx[MAX_SAVED_CONST_INT + 4])
2259 : return -1;
2260 1224 : x29 = XVECEXP (x7, 0, 5);
2261 1224 : if (x29 != const_int_rtx[MAX_SAVED_CONST_INT + 5])
2262 : return -1;
2263 1224 : x30 = XVECEXP (x7, 0, 6);
2264 1224 : if (x30 != const_int_rtx[MAX_SAVED_CONST_INT + 6])
2265 : return -1;
2266 1224 : x31 = XVECEXP (x7, 0, 7);
2267 1224 : if (x31 != const_int_rtx[MAX_SAVED_CONST_INT + 7]
2268 1224 : || XVECLEN (x2, 0) != 8
2269 1224 : || GET_MODE (x2) != E_V8QImode)
2270 : return -1;
2271 1224 : x12 = XVECEXP (x2, 0, 0);
2272 1224 : if (x12 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
2273 : return -1;
2274 1224 : x13 = XVECEXP (x2, 0, 1);
2275 1224 : if (x13 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
2276 : return -1;
2277 1224 : x14 = XVECEXP (x2, 0, 2);
2278 1224 : if (x14 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
2279 : return -1;
2280 1224 : x15 = XVECEXP (x2, 0, 3);
2281 1224 : if (x15 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
2282 : return -1;
2283 1224 : x16 = XVECEXP (x2, 0, 4);
2284 1224 : if (x16 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
2285 : return -1;
2286 1224 : x17 = XVECEXP (x2, 0, 5);
2287 1224 : if (x17 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
2288 : return -1;
2289 1224 : x18 = XVECEXP (x2, 0, 6);
2290 1224 : if (x18 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
2291 : return -1;
2292 1224 : x19 = XVECEXP (x2, 0, 7);
2293 1224 : if (x19 != const_int_rtx[MAX_SAVED_CONST_INT + 0]
2294 1224 : || !register_operand (operands[0], E_V16QImode)
2295 1206 : || GET_MODE (x1) != E_V16QImode
2296 1206 : || GET_MODE (x3) != E_V8QImode
2297 1206 : || GET_MODE (x4) != E_V8QImode
2298 1206 : || GET_MODE (x6) != E_V8QImode
2299 2430 : || !nonimm_or_0_operand (operands[2], E_V16QImode))
2300 18 : return -1;
2301 1206 : res = pattern508 ();
2302 1206 : if (res >= 0)
2303 1206 : return res + 7; /* [7, 9] */
2304 : return -1;
2305 :
2306 : default:
2307 : return -1;
2308 : }
2309 :
2310 1821 : case CONST_VECTOR:
2311 1821 : x9 = XEXP (x3, 2);
2312 1821 : operands[2] = x9;
2313 1821 : switch (XVECLEN (x6, 0))
2314 : {
2315 555 : case 2:
2316 555 : x32 = XVECEXP (x6, 0, 0);
2317 555 : if (x32 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
2318 : return -1;
2319 540 : x33 = XVECEXP (x6, 0, 1);
2320 540 : if (x33 != const_int_rtx[MAX_SAVED_CONST_INT + 0]
2321 540 : || !register_operand (operands[1], E_V2DImode))
2322 0 : return -1;
2323 540 : switch (XVECLEN (x2, 0))
2324 : {
2325 180 : case 14:
2326 180 : if (GET_MODE (x2) != E_V14QImode)
2327 : return -1;
2328 180 : x12 = XVECEXP (x2, 0, 0);
2329 180 : if (x12 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
2330 : return -1;
2331 180 : x13 = XVECEXP (x2, 0, 1);
2332 180 : if (x13 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
2333 : return -1;
2334 180 : x14 = XVECEXP (x2, 0, 2);
2335 180 : if (x14 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
2336 : return -1;
2337 180 : x15 = XVECEXP (x2, 0, 3);
2338 180 : if (x15 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
2339 : return -1;
2340 180 : x16 = XVECEXP (x2, 0, 4);
2341 180 : if (x16 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
2342 : return -1;
2343 180 : x17 = XVECEXP (x2, 0, 5);
2344 180 : if (x17 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
2345 : return -1;
2346 180 : x18 = XVECEXP (x2, 0, 6);
2347 180 : if (x18 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
2348 : return -1;
2349 180 : x19 = XVECEXP (x2, 0, 7);
2350 180 : if (x19 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
2351 : return -1;
2352 180 : x20 = XVECEXP (x2, 0, 8);
2353 180 : if (x20 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
2354 : return -1;
2355 180 : x21 = XVECEXP (x2, 0, 9);
2356 180 : if (x21 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
2357 : return -1;
2358 180 : x22 = XVECEXP (x2, 0, 10);
2359 180 : if (x22 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
2360 : return -1;
2361 180 : x23 = XVECEXP (x2, 0, 11);
2362 180 : if (x23 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
2363 : return -1;
2364 180 : x24 = XVECEXP (x2, 0, 12);
2365 180 : if (x24 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
2366 : return -1;
2367 180 : x25 = XVECEXP (x2, 0, 13);
2368 180 : if (x25 != const_int_rtx[MAX_SAVED_CONST_INT + 0]
2369 180 : || pattern509 (x1,
2370 : E_V2QImode,
2371 : E_V16QImode) != 0)
2372 0 : return -1;
2373 : return 10;
2374 :
2375 180 : case 6:
2376 180 : if (GET_MODE (x2) != E_V6HImode)
2377 : return -1;
2378 180 : x12 = XVECEXP (x2, 0, 0);
2379 180 : if (x12 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
2380 : return -1;
2381 180 : x13 = XVECEXP (x2, 0, 1);
2382 180 : if (x13 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
2383 : return -1;
2384 180 : x14 = XVECEXP (x2, 0, 2);
2385 180 : if (x14 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
2386 : return -1;
2387 180 : x15 = XVECEXP (x2, 0, 3);
2388 180 : if (x15 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
2389 : return -1;
2390 180 : x16 = XVECEXP (x2, 0, 4);
2391 180 : if (x16 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
2392 : return -1;
2393 180 : x17 = XVECEXP (x2, 0, 5);
2394 180 : if (x17 != const_int_rtx[MAX_SAVED_CONST_INT + 0]
2395 180 : || pattern509 (x1,
2396 : E_V2HImode,
2397 : E_V8HImode) != 0)
2398 0 : return -1;
2399 : return 11;
2400 :
2401 180 : case 2:
2402 180 : if (GET_MODE (x2) != E_V2SImode)
2403 : return -1;
2404 180 : x12 = XVECEXP (x2, 0, 0);
2405 180 : if (x12 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
2406 : return -1;
2407 180 : x13 = XVECEXP (x2, 0, 1);
2408 180 : if (x13 != const_int_rtx[MAX_SAVED_CONST_INT + 0]
2409 180 : || pattern509 (x1,
2410 : E_V2SImode,
2411 : E_V4SImode) != 0)
2412 0 : return -1;
2413 : return 12;
2414 :
2415 : default:
2416 : return -1;
2417 : }
2418 :
2419 726 : case 4:
2420 726 : x32 = XVECEXP (x6, 0, 0);
2421 726 : if (x32 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
2422 : return -1;
2423 720 : x33 = XVECEXP (x6, 0, 1);
2424 720 : if (x33 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
2425 : return -1;
2426 720 : x34 = XVECEXP (x6, 0, 2);
2427 720 : if (x34 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
2428 : return -1;
2429 720 : x35 = XVECEXP (x6, 0, 3);
2430 720 : if (x35 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
2431 : return -1;
2432 720 : switch (XVECLEN (x2, 0))
2433 : {
2434 360 : case 12:
2435 360 : if (GET_MODE (x2) != E_V12QImode)
2436 : return -1;
2437 360 : x12 = XVECEXP (x2, 0, 0);
2438 360 : if (x12 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
2439 : return -1;
2440 360 : x13 = XVECEXP (x2, 0, 1);
2441 360 : if (x13 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
2442 : return -1;
2443 360 : x14 = XVECEXP (x2, 0, 2);
2444 360 : if (x14 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
2445 : return -1;
2446 360 : x15 = XVECEXP (x2, 0, 3);
2447 360 : if (x15 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
2448 : return -1;
2449 360 : x16 = XVECEXP (x2, 0, 4);
2450 360 : if (x16 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
2451 : return -1;
2452 360 : x17 = XVECEXP (x2, 0, 5);
2453 360 : if (x17 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
2454 : return -1;
2455 360 : x18 = XVECEXP (x2, 0, 6);
2456 360 : if (x18 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
2457 : return -1;
2458 360 : x19 = XVECEXP (x2, 0, 7);
2459 360 : if (x19 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
2460 : return -1;
2461 360 : x20 = XVECEXP (x2, 0, 8);
2462 360 : if (x20 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
2463 : return -1;
2464 360 : x21 = XVECEXP (x2, 0, 9);
2465 360 : if (x21 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
2466 : return -1;
2467 360 : x22 = XVECEXP (x2, 0, 10);
2468 360 : if (x22 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
2469 : return -1;
2470 360 : x23 = XVECEXP (x2, 0, 11);
2471 360 : if (x23 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
2472 : return -1;
2473 360 : res = pattern510 (x1,
2474 : E_V4QImode,
2475 : E_V16QImode);
2476 360 : if (res >= 0)
2477 360 : return res + 13; /* [13, 14] */
2478 : return -1;
2479 :
2480 360 : case 4:
2481 360 : if (GET_MODE (x2) != E_V4HImode)
2482 : return -1;
2483 360 : x12 = XVECEXP (x2, 0, 0);
2484 360 : if (x12 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
2485 : return -1;
2486 360 : x13 = XVECEXP (x2, 0, 1);
2487 360 : if (x13 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
2488 : return -1;
2489 360 : x14 = XVECEXP (x2, 0, 2);
2490 360 : if (x14 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
2491 : return -1;
2492 360 : x15 = XVECEXP (x2, 0, 3);
2493 360 : if (x15 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
2494 : return -1;
2495 360 : res = pattern510 (x1,
2496 : E_V4HImode,
2497 : E_V8HImode);
2498 360 : if (res >= 0)
2499 360 : return res + 15; /* [15, 16] */
2500 : return -1;
2501 :
2502 : default:
2503 : return -1;
2504 : }
2505 :
2506 540 : case 8:
2507 540 : if (GET_MODE (x6) != E_V8QImode)
2508 : return -1;
2509 540 : x32 = XVECEXP (x6, 0, 0);
2510 540 : if (x32 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
2511 : return -1;
2512 540 : x33 = XVECEXP (x6, 0, 1);
2513 540 : if (x33 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
2514 : return -1;
2515 540 : x34 = XVECEXP (x6, 0, 2);
2516 540 : if (x34 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
2517 : return -1;
2518 540 : x35 = XVECEXP (x6, 0, 3);
2519 540 : if (x35 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
2520 : return -1;
2521 540 : x36 = XVECEXP (x6, 0, 4);
2522 540 : if (x36 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
2523 : return -1;
2524 540 : x37 = XVECEXP (x6, 0, 5);
2525 540 : if (x37 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
2526 : return -1;
2527 540 : x38 = XVECEXP (x6, 0, 6);
2528 540 : if (x38 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
2529 : return -1;
2530 540 : x39 = XVECEXP (x6, 0, 7);
2531 540 : if (x39 != const_int_rtx[MAX_SAVED_CONST_INT + 0]
2532 540 : || XVECLEN (x2, 0) != 8
2533 540 : || GET_MODE (x2) != E_V8QImode)
2534 : return -1;
2535 540 : x12 = XVECEXP (x2, 0, 0);
2536 540 : if (x12 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
2537 : return -1;
2538 540 : x13 = XVECEXP (x2, 0, 1);
2539 540 : if (x13 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
2540 : return -1;
2541 540 : x14 = XVECEXP (x2, 0, 2);
2542 540 : if (x14 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
2543 : return -1;
2544 540 : x15 = XVECEXP (x2, 0, 3);
2545 540 : if (x15 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
2546 : return -1;
2547 540 : x16 = XVECEXP (x2, 0, 4);
2548 540 : if (x16 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
2549 : return -1;
2550 540 : x17 = XVECEXP (x2, 0, 5);
2551 540 : if (x17 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
2552 : return -1;
2553 540 : x18 = XVECEXP (x2, 0, 6);
2554 540 : if (x18 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
2555 : return -1;
2556 540 : x19 = XVECEXP (x2, 0, 7);
2557 540 : if (x19 != const_int_rtx[MAX_SAVED_CONST_INT + 0]
2558 540 : || !register_operand (operands[0], E_V16QImode)
2559 540 : || GET_MODE (x1) != E_V16QImode
2560 540 : || GET_MODE (x3) != E_V8QImode
2561 1080 : || GET_MODE (x4) != E_V8QImode)
2562 0 : return -1;
2563 540 : res = pattern508 ();
2564 540 : if (res >= 0)
2565 540 : return res + 17; /* [17, 19] */
2566 : return -1;
2567 :
2568 : default:
2569 : return -1;
2570 : }
2571 :
2572 : default:
2573 : return -1;
2574 : }
2575 : }
2576 :
2577 : int
2578 43892 : pattern728 (rtx x1, rtx_code i1)
2579 : {
2580 43892 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
2581 43892 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
2582 43892 : rtx x10, x11, x12, x13, x14, x15, x16, x17;
2583 43892 : rtx x18;
2584 43892 : int res ATTRIBUTE_UNUSED;
2585 43892 : x2 = XVECEXP (x1, 0, 0);
2586 43892 : x3 = XEXP (x2, 1);
2587 43892 : x4 = XEXP (x3, 0);
2588 43892 : x5 = XEXP (x4, 0);
2589 43892 : if (GET_CODE (x5) != SIGN_EXTEND)
2590 : return -1;
2591 37730 : x6 = XEXP (x3, 1);
2592 37730 : if (GET_CODE (x6) != SIGN_EXTEND)
2593 : return -1;
2594 37730 : x7 = XEXP (x6, 0);
2595 37730 : if (GET_CODE (x7) != i1)
2596 : return -1;
2597 37730 : x8 = XEXP (x2, 0);
2598 37730 : if (GET_CODE (x8) != REG
2599 37730 : || REGNO (x8) != 17
2600 75460 : || GET_MODE (x8) != E_CCOmode)
2601 : return -1;
2602 37730 : x9 = XVECEXP (x1, 0, 1);
2603 37730 : if (GET_CODE (x9) != SET)
2604 : return -1;
2605 37730 : x10 = XEXP (x9, 1);
2606 37730 : if (GET_CODE (x10) != i1
2607 37730 : || GET_MODE (x3) != E_CCOmode)
2608 : return -1;
2609 37730 : x11 = XEXP (x5, 0);
2610 37730 : operands[1] = x11;
2611 37730 : x12 = XEXP (x9, 0);
2612 37730 : operands[0] = x12;
2613 37730 : x13 = XEXP (x7, 0);
2614 37730 : if (!rtx_equal_p (x13, operands[1]))
2615 : return -1;
2616 37729 : x14 = XEXP (x10, 0);
2617 37729 : if (!rtx_equal_p (x14, operands[1]))
2618 : return -1;
2619 37728 : x15 = XEXP (x4, 1);
2620 37728 : switch (GET_CODE (x15))
2621 : {
2622 26080 : case SIGN_EXTEND:
2623 26080 : x16 = XEXP (x15, 0);
2624 26080 : operands[2] = x16;
2625 26080 : x17 = XEXP (x7, 1);
2626 26080 : if (!rtx_equal_p (x17, operands[2]))
2627 : return -1;
2628 26080 : x18 = XEXP (x10, 1);
2629 26080 : if (!rtx_equal_p (x18, operands[2]))
2630 : return -1;
2631 26080 : switch (GET_MODE (x4))
2632 : {
2633 11969 : case E_TImode:
2634 11969 : return pattern726 (x1,
2635 : E_DImode,
2636 11969 : E_TImode); /* [-1, 0] */
2637 :
2638 3488 : case E_POImode:
2639 3488 : if (pattern726 (x1,
2640 : E_TImode,
2641 : E_POImode) != 0)
2642 : return -1;
2643 : return 1;
2644 :
2645 : default:
2646 : return -1;
2647 : }
2648 :
2649 11648 : case CONST_INT:
2650 11648 : case CONST_WIDE_INT:
2651 11648 : operands[3] = x15;
2652 11648 : x17 = XEXP (x7, 1);
2653 11648 : operands[2] = x17;
2654 11648 : x18 = XEXP (x10, 1);
2655 11648 : if (!rtx_equal_p (x18, operands[2]))
2656 : return -1;
2657 11648 : switch (GET_MODE (x4))
2658 : {
2659 3735 : case E_TImode:
2660 3735 : if (pattern727 (x1,
2661 : E_DImode,
2662 : E_TImode) != 0)
2663 : return -1;
2664 : return 2;
2665 :
2666 1007 : case E_POImode:
2667 1007 : if (pattern727 (x1,
2668 : E_TImode,
2669 : E_POImode) != 0)
2670 : return -1;
2671 : return 3;
2672 :
2673 : default:
2674 : return -1;
2675 : }
2676 :
2677 : default:
2678 : return -1;
2679 : }
2680 : }
2681 :
2682 : int
2683 5533 : pattern758 (rtx x1, machine_mode i1)
2684 : {
2685 5533 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
2686 5533 : rtx x2;
2687 5533 : int res ATTRIBUTE_UNUSED;
2688 5533 : if (!register_operand (operands[0], i1)
2689 5533 : || GET_MODE (x1) != i1)
2690 : return -1;
2691 4025 : x2 = XEXP (x1, 0);
2692 4025 : if (GET_MODE (x2) != i1
2693 4025 : || !register_operand (operands[1], i1))
2694 3818 : return -1;
2695 : return 0;
2696 : }
2697 :
2698 : int
2699 10479 : pattern762 (rtx x1, machine_mode i1)
2700 : {
2701 10479 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
2702 10479 : rtx x2;
2703 10479 : int res ATTRIBUTE_UNUSED;
2704 10479 : if (!register_operand (operands[0], i1)
2705 10479 : || GET_MODE (x1) != i1)
2706 : return -1;
2707 9727 : x2 = XEXP (x1, 0);
2708 9727 : if (GET_MODE (x2) != i1
2709 9727 : || !nonimmediate_operand (operands[1], i1))
2710 3453 : return -1;
2711 : return 0;
2712 : }
2713 :
2714 : int
2715 0 : pattern770 (rtx x1, machine_mode i1, machine_mode i2)
2716 : {
2717 0 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
2718 0 : int res ATTRIBUTE_UNUSED;
2719 0 : if (!vector_all_ones_operand (operands[3], i1)
2720 0 : || !const0_operand (operands[4], i1)
2721 0 : || GET_MODE (x1) != i2
2722 0 : || !register_operand (operands[1], i1)
2723 0 : || !const0_operand (operands[2], i1))
2724 0 : return -1;
2725 : return 0;
2726 : }
2727 :
2728 : int
2729 176 : pattern775 (rtx x1)
2730 : {
2731 176 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
2732 176 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
2733 176 : rtx x10;
2734 176 : int res ATTRIBUTE_UNUSED;
2735 176 : x2 = XEXP (x1, 0);
2736 176 : x3 = XEXP (x2, 0);
2737 176 : if (GET_MODE (x3) != E_V8HFmode)
2738 : return -1;
2739 176 : x4 = XEXP (x2, 2);
2740 176 : if (GET_CODE (x4) != UNSPEC
2741 176 : || XVECLEN (x4, 0) != 1
2742 176 : || XINT (x4, 1) != 224
2743 176 : || GET_MODE (x4) != E_QImode)
2744 : return -1;
2745 176 : x5 = XEXP (x1, 2);
2746 176 : if (XWINT (x5, 0) != 3L
2747 176 : || !register_operand (operands[0], E_V8HFmode)
2748 148 : || GET_MODE (x1) != E_V8HFmode
2749 324 : || GET_MODE (x2) != E_V8HFmode)
2750 28 : return -1;
2751 148 : x6 = XVECEXP (x3, 0, 0);
2752 148 : operands[1] = x6;
2753 148 : if (!nonimmediate_operand (operands[1], E_V8HFmode))
2754 : return -1;
2755 148 : x7 = XVECEXP (x3, 0, 1);
2756 148 : operands[2] = x7;
2757 148 : if (!vector_operand (operands[2], E_V8HFmode))
2758 : return -1;
2759 148 : x8 = XEXP (x2, 1);
2760 148 : operands[3] = x8;
2761 148 : if (!nonimm_or_0_operand (operands[3], E_V8HFmode))
2762 : return -1;
2763 148 : x9 = XVECEXP (x4, 0, 0);
2764 148 : operands[4] = x9;
2765 148 : if (!register_operand (operands[4], E_QImode))
2766 : return -1;
2767 132 : x10 = XEXP (x1, 1);
2768 132 : if (!rtx_equal_p (x10, operands[1]))
2769 : return -1;
2770 : return 0;
2771 : }
2772 :
2773 : int
2774 2688 : pattern791 (rtx x1, machine_mode i1)
2775 : {
2776 2688 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
2777 2688 : int res ATTRIBUTE_UNUSED;
2778 2688 : if (!register_operand (operands[0], i1)
2779 2676 : || GET_MODE (x1) != i1
2780 2676 : || !register_operand (operands[2], i1)
2781 4757 : || !memory_operand (operands[1], i1))
2782 753 : return -1;
2783 : return 0;
2784 : }
2785 :
2786 : int
2787 52572 : pattern800 (rtx x1, machine_mode i1, machine_mode i2)
2788 : {
2789 52572 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
2790 52572 : rtx x2;
2791 52572 : int res ATTRIBUTE_UNUSED;
2792 52572 : if (!register_operand (operands[0], i2)
2793 51454 : || GET_MODE (x1) != i2
2794 104026 : || !nonimmediate_operand (operands[1], i1))
2795 6075 : return -1;
2796 46497 : x2 = XEXP (x1, 1);
2797 46497 : if (!rtx_equal_p (x2, operands[1]))
2798 : return -1;
2799 : return 0;
2800 : }
2801 :
2802 : int
2803 44509 : pattern807 (rtx x1, machine_mode i1, machine_mode i2)
2804 : {
2805 44509 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
2806 44509 : rtx x2;
2807 44509 : int res ATTRIBUTE_UNUSED;
2808 44509 : if (!register_operand (operands[0], i1)
2809 44509 : || GET_MODE (x1) != i1)
2810 : return -1;
2811 44508 : x2 = XEXP (x1, 0);
2812 44508 : if (GET_MODE (x2) != i2
2813 44508 : || !vector_operand (operands[1], i1)
2814 44462 : || !const0_operand (operands[2], i1)
2815 88864 : || !pmovzx_parallel (operands[3], E_VOIDmode))
2816 21497 : return -1;
2817 : return 0;
2818 : }
2819 :
2820 : int
2821 5370 : pattern816 (rtx x1, machine_mode i1, machine_mode i2)
2822 : {
2823 5370 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
2824 5370 : rtx x2, x3, x4, x5;
2825 5370 : int res ATTRIBUTE_UNUSED;
2826 5370 : if (!register_operand (operands[0], i1)
2827 5370 : || GET_MODE (x1) != i1)
2828 : return -1;
2829 5354 : x2 = XEXP (x1, 0);
2830 5354 : if (GET_MODE (x2) != i2)
2831 : return -1;
2832 5354 : x3 = XEXP (x2, 0);
2833 5354 : if (GET_MODE (x3) != i2)
2834 : return -1;
2835 5354 : x4 = XEXP (x3, 0);
2836 5354 : if (GET_MODE (x4) != i2
2837 5354 : || !vector_operand (operands[1], i1))
2838 396 : return -1;
2839 4958 : x5 = XEXP (x3, 1);
2840 4958 : if (GET_MODE (x5) != i2
2841 4958 : || !vector_operand (operands[2], i1))
2842 417 : return -1;
2843 : return 0;
2844 : }
2845 :
2846 : int
2847 8696350 : pattern822 (rtx x1)
2848 : {
2849 8696350 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
2850 8696350 : rtx x2, x3, x4, x5;
2851 8696350 : int res ATTRIBUTE_UNUSED;
2852 8696350 : if (!nonmemory_operand (operands[2], E_QImode))
2853 : return -1;
2854 8655665 : x2 = XVECEXP (x1, 0, 1);
2855 8655665 : if (GET_CODE (x2) != CLOBBER)
2856 : return -1;
2857 8223205 : x3 = XEXP (x2, 0);
2858 8223205 : if (GET_CODE (x3) != REG
2859 8223205 : || REGNO (x3) != 17
2860 16446410 : || GET_MODE (x3) != E_CCmode)
2861 : return -1;
2862 8223205 : x4 = XVECEXP (x1, 0, 0);
2863 8223205 : x5 = XEXP (x4, 0);
2864 8223205 : switch (GET_CODE (x5))
2865 : {
2866 : case REG:
2867 : case SUBREG:
2868 : case MEM:
2869 : return 0;
2870 :
2871 96 : case STRICT_LOW_PART:
2872 96 : return 1;
2873 :
2874 : default:
2875 : return -1;
2876 : }
2877 : }
2878 :
2879 : int
2880 28684 : pattern828 (rtx x1)
2881 : {
2882 28684 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
2883 28684 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
2884 28684 : rtx x10, x11, x12, x13, x14, x15, x16, x17;
2885 28684 : int res ATTRIBUTE_UNUSED;
2886 28684 : x2 = XVECEXP (x1, 0, 0);
2887 28684 : x3 = XEXP (x2, 1);
2888 28684 : x4 = XEXP (x3, 0);
2889 28684 : x5 = XEXP (x4, 0);
2890 28684 : if (maybe_ne (SUBREG_BYTE (x5), 0)
2891 28684 : || GET_MODE (x5) != E_QImode)
2892 : return -1;
2893 6404 : x6 = XEXP (x5, 0);
2894 6404 : switch (GET_CODE (x6))
2895 : {
2896 4629 : case ASHIFTRT:
2897 4629 : case LSHIFTRT:
2898 4629 : case SIGN_EXTRACT:
2899 4629 : case ZERO_EXTRACT:
2900 4629 : operands[3] = x6;
2901 4629 : x7 = XVECEXP (x1, 0, 1);
2902 4629 : if (GET_CODE (x7) != SET)
2903 : return -1;
2904 4605 : x8 = XEXP (x7, 1);
2905 4605 : if (GET_CODE (x8) != SUBREG
2906 4605 : || maybe_ne (SUBREG_BYTE (x8), 0))
2907 : return -1;
2908 836 : x9 = XEXP (x8, 0);
2909 836 : if (GET_CODE (x9) != AND
2910 836 : || GET_MODE (x9) != E_QImode)
2911 : return -1;
2912 836 : x10 = XEXP (x9, 0);
2913 836 : if (GET_CODE (x10) != SUBREG
2914 836 : || maybe_ne (SUBREG_BYTE (x10), 0)
2915 1672 : || GET_MODE (x10) != E_QImode)
2916 : return -1;
2917 836 : x11 = XEXP (x10, 0);
2918 836 : if (GET_CODE (x11) != ZERO_EXTRACT)
2919 : return -1;
2920 836 : x12 = XEXP (x11, 1);
2921 836 : if (x12 != const_int_rtx[MAX_SAVED_CONST_INT + 8])
2922 : return -1;
2923 836 : x13 = XEXP (x11, 2);
2924 836 : if (x13 != const_int_rtx[MAX_SAVED_CONST_INT + 8])
2925 : return -1;
2926 836 : x14 = XEXP (x7, 0);
2927 836 : if (GET_CODE (x14) != ZERO_EXTRACT)
2928 : return -1;
2929 836 : x15 = XEXP (x14, 1);
2930 836 : if (x15 != const_int_rtx[MAX_SAVED_CONST_INT + 8])
2931 : return -1;
2932 836 : x16 = XEXP (x14, 2);
2933 836 : if (x16 != const_int_rtx[MAX_SAVED_CONST_INT + 8])
2934 : return -1;
2935 836 : x17 = XEXP (x2, 0);
2936 836 : operands[4] = x17;
2937 836 : if (!flags_reg_operand (operands[4], E_VOIDmode))
2938 : return -1;
2939 836 : operands[5] = x3;
2940 836 : if (!compare_operator (operands[5], E_VOIDmode)
2941 836 : || GET_MODE (x4) != E_QImode)
2942 : return -1;
2943 836 : return pattern589 (x1); /* [-1, 2] */
2944 :
2945 : default:
2946 : return -1;
2947 : }
2948 : }
2949 :
2950 : int
2951 4284983 : pattern852 (rtx x1, machine_mode i1)
2952 : {
2953 4284983 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
2954 4284983 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
2955 4284983 : rtx x10, x11, x12, x13, x14, x15, x16, x17;
2956 4284983 : rtx x18, x19;
2957 4284983 : int res ATTRIBUTE_UNUSED;
2958 4284983 : if (peep2_current_count < 4
2959 4284983 : || peep2_current_count < 5)
2960 : return -1;
2961 2426438 : x2 = XEXP (x1, 0);
2962 2426438 : operands[3] = x2;
2963 2426438 : if (!register_operand (operands[3], i1))
2964 : return -1;
2965 1189040 : x3 = XEXP (x1, 1);
2966 1189040 : if (!rtx_equal_p (x3, operands[0]))
2967 : return -1;
2968 57687 : x4 = PATTERN (peep2_next_insn (2));
2969 57687 : if (GET_CODE (x4) != PARALLEL
2970 36558 : || XVECLEN (x4, 0) != 2)
2971 : return -1;
2972 36465 : x5 = XVECEXP (x4, 0, 0);
2973 36465 : if (GET_CODE (x5) != SET)
2974 : return -1;
2975 36434 : x6 = XEXP (x5, 1);
2976 36434 : if (GET_CODE (x6) != XOR
2977 284 : || GET_MODE (x6) != i1)
2978 : return -1;
2979 284 : x7 = XVECEXP (x4, 0, 1);
2980 284 : if (GET_CODE (x7) != CLOBBER)
2981 : return -1;
2982 284 : x8 = XEXP (x7, 0);
2983 284 : if (GET_CODE (x8) != REG
2984 284 : || REGNO (x8) != 17
2985 568 : || GET_MODE (x8) != E_CCmode)
2986 : return -1;
2987 284 : x9 = XEXP (x5, 0);
2988 284 : operands[4] = x9;
2989 284 : if (!register_operand (operands[4], i1))
2990 : return -1;
2991 284 : x10 = XEXP (x6, 1);
2992 284 : operands[2] = x10;
2993 284 : if (!x86_64_nonmemory_operand (operands[2], i1))
2994 : return -1;
2995 137 : x11 = XEXP (x6, 0);
2996 137 : if (!rtx_equal_p (x11, operands[4]))
2997 : return -1;
2998 128 : x12 = PATTERN (peep2_next_insn (3));
2999 128 : if (GET_CODE (x12) != SET)
3000 : return -1;
3001 41 : x13 = XEXP (x12, 1);
3002 41 : if (!rtx_equal_p (x13, operands[4]))
3003 : return -1;
3004 34 : x14 = XEXP (x12, 0);
3005 34 : if (!rtx_equal_p (x14, operands[1]))
3006 : return -1;
3007 23 : x15 = PATTERN (peep2_next_insn (4));
3008 23 : if (GET_CODE (x15) != SET)
3009 : return -1;
3010 23 : x16 = XEXP (x15, 1);
3011 23 : if (GET_CODE (x16) != COMPARE
3012 17 : || GET_MODE (x16) != E_CCZmode)
3013 : return -1;
3014 17 : x17 = XEXP (x15, 0);
3015 17 : if (GET_CODE (x17) != REG
3016 17 : || REGNO (x17) != 17
3017 34 : || GET_MODE (x17) != E_CCZmode)
3018 : return -1;
3019 17 : x18 = XEXP (x16, 0);
3020 17 : operands[5] = x18;
3021 17 : if (!register_operand (operands[5], i1))
3022 : return -1;
3023 17 : x19 = XEXP (x16, 1);
3024 17 : operands[6] = x19;
3025 17 : if (!x86_64_nonmemory_operand (operands[6], i1))
3026 : return -1;
3027 : return 0;
3028 : }
3029 :
3030 : int
3031 5829 : pattern872 (rtx x1, machine_mode i1)
3032 : {
3033 5829 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3034 5829 : int res ATTRIBUTE_UNUSED;
3035 5829 : if (!register_operand (operands[0], i1)
3036 5224 : || GET_MODE (x1) != i1
3037 5224 : || !register_operand (operands[2], i1)
3038 10548 : || !register_operand (operands[1], i1))
3039 1564 : return -1;
3040 : return 0;
3041 : }
3042 :
3043 : int
3044 2267 : pattern879 ()
3045 : {
3046 2267 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3047 2267 : int res ATTRIBUTE_UNUSED;
3048 2267 : switch (GET_MODE (operands[1]))
3049 : {
3050 1131 : case E_V32QImode:
3051 1131 : if (!register_operand (operands[1], E_V32QImode)
3052 1131 : || !nonimmediate_operand (operands[2], E_V32QImode))
3053 0 : return -1;
3054 : return 0;
3055 :
3056 1136 : case E_V32HImode:
3057 1136 : if (!register_operand (operands[1], E_V32HImode)
3058 1136 : || !nonimmediate_operand (operands[2], E_V32HImode))
3059 0 : return -1;
3060 : return 1;
3061 :
3062 : default:
3063 : return -1;
3064 : }
3065 : }
3066 :
3067 : int
3068 1014 : pattern888 (rtx x1, machine_mode i1)
3069 : {
3070 1014 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3071 1014 : rtx x2, x3;
3072 1014 : int res ATTRIBUTE_UNUSED;
3073 1014 : if (!register_operand (operands[0], i1)
3074 1014 : || GET_MODE (x1) != i1)
3075 : return -1;
3076 982 : x2 = XVECEXP (x1, 0, 0);
3077 982 : if (GET_MODE (x2) != i1)
3078 : return -1;
3079 982 : x3 = XVECEXP (x2, 0, 0);
3080 982 : switch (GET_MODE (x3))
3081 : {
3082 492 : case E_DFmode:
3083 492 : if (!register_operand (operands[1], E_V2DFmode))
3084 : return -1;
3085 : return 0;
3086 :
3087 490 : case E_SFmode:
3088 490 : if (!register_operand (operands[1], E_V4SFmode))
3089 : return -1;
3090 : return 1;
3091 :
3092 : default:
3093 : return -1;
3094 : }
3095 : }
3096 :
3097 : int
3098 1511 : pattern897 (rtx x1, machine_mode i1, machine_mode i2)
3099 : {
3100 1511 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3101 1511 : rtx x2, x3, x4;
3102 1511 : int res ATTRIBUTE_UNUSED;
3103 1511 : if (!register_operand (operands[0], i1)
3104 1511 : || GET_MODE (x1) != i1)
3105 : return -1;
3106 1140 : x2 = XEXP (x1, 0);
3107 1140 : if (GET_MODE (x2) != i1)
3108 : return -1;
3109 1140 : x3 = XEXP (x2, 0);
3110 1140 : operands[1] = x3;
3111 1140 : if (!nonimmediate_operand (operands[1], i2))
3112 : return -1;
3113 811 : x4 = XEXP (x1, 1);
3114 811 : operands[2] = x4;
3115 811 : if (!reg_or_0_operand (operands[2], i1))
3116 : return -1;
3117 : return 0;
3118 : }
3119 :
3120 : int
3121 388 : pattern908 (rtx x1, int i1, machine_mode i2)
3122 : {
3123 388 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3124 388 : rtx x2, x3;
3125 388 : int res ATTRIBUTE_UNUSED;
3126 388 : if (GET_CODE (x1) != VEC_SELECT
3127 388 : || GET_MODE (x1) != i2)
3128 : return -1;
3129 388 : x2 = XEXP (x1, 1);
3130 388 : if (GET_CODE (x2) != PARALLEL
3131 388 : || XVECLEN (x2, 0) != i1)
3132 : return -1;
3133 388 : x3 = XVECEXP (x2, 0, 0);
3134 388 : if (x3 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
3135 0 : return -1;
3136 : return 0;
3137 : }
3138 :
3139 : int
3140 2096 : pattern911 (rtx x1, machine_mode i1, machine_mode i2)
3141 : {
3142 2096 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3143 2096 : rtx x2, x3;
3144 2096 : int res ATTRIBUTE_UNUSED;
3145 2096 : if (!register_operand (operands[0], i1)
3146 2096 : || GET_MODE (x1) != i1)
3147 : return -1;
3148 2036 : x2 = XVECEXP (x1, 0, 0);
3149 2036 : if (GET_MODE (x2) != i1)
3150 : return -1;
3151 2036 : x3 = XEXP (x2, 0);
3152 2036 : if (GET_MODE (x3) != i1
3153 2036 : || !register_operand (operands[1], i1)
3154 2016 : || !register_operand (operands[2], i1)
3155 2000 : || !nonimm_or_0_operand (operands[3], i1)
3156 4036 : || !register_operand (operands[4], i2))
3157 36 : return -1;
3158 : return 0;
3159 : }
3160 :
3161 : int
3162 1158 : pattern921 (rtx x1)
3163 : {
3164 1158 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3165 1158 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
3166 1158 : rtx x10, x11, x12, x13, x14, x15, x16;
3167 1158 : int res ATTRIBUTE_UNUSED;
3168 1158 : x2 = XEXP (x1, 0);
3169 1158 : x3 = XEXP (x2, 0);
3170 1158 : if (GET_MODE (x3) != E_V8QImode)
3171 : return -1;
3172 1158 : x4 = XEXP (x2, 1);
3173 1158 : if (GET_CODE (x4) != VEC_SELECT
3174 956 : || GET_MODE (x4) != E_V8QImode)
3175 : return -1;
3176 956 : x5 = XEXP (x4, 1);
3177 956 : if (GET_CODE (x5) != PARALLEL
3178 956 : || XVECLEN (x5, 0) != 8)
3179 : return -1;
3180 956 : x6 = XVECEXP (x5, 0, 0);
3181 956 : if (x6 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
3182 : return -1;
3183 956 : x7 = XVECEXP (x5, 0, 1);
3184 956 : if (x7 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
3185 : return -1;
3186 956 : x8 = XVECEXP (x5, 0, 2);
3187 956 : if (x8 != const_int_rtx[MAX_SAVED_CONST_INT + 2])
3188 : return -1;
3189 956 : x9 = XVECEXP (x5, 0, 3);
3190 956 : if (x9 != const_int_rtx[MAX_SAVED_CONST_INT + 3])
3191 : return -1;
3192 956 : x10 = XVECEXP (x5, 0, 4);
3193 956 : if (x10 != const_int_rtx[MAX_SAVED_CONST_INT + 4])
3194 : return -1;
3195 956 : x11 = XVECEXP (x5, 0, 5);
3196 956 : if (x11 != const_int_rtx[MAX_SAVED_CONST_INT + 5])
3197 : return -1;
3198 956 : x12 = XVECEXP (x5, 0, 6);
3199 956 : if (x12 != const_int_rtx[MAX_SAVED_CONST_INT + 6])
3200 : return -1;
3201 956 : x13 = XVECEXP (x5, 0, 7);
3202 956 : if (x13 != const_int_rtx[MAX_SAVED_CONST_INT + 7]
3203 956 : || !register_operand (operands[0], E_V16QImode)
3204 948 : || GET_MODE (x1) != E_V16QImode
3205 948 : || GET_MODE (x2) != E_V8QImode
3206 1904 : || !nonimmediate_operand (operands[1], E_V8HFmode))
3207 80 : return -1;
3208 876 : x14 = XEXP (x4, 0);
3209 876 : operands[2] = x14;
3210 876 : if (!nonimm_or_0_operand (operands[2], E_V16QImode))
3211 : return -1;
3212 876 : x15 = XEXP (x2, 2);
3213 876 : operands[3] = x15;
3214 876 : x16 = XEXP (x1, 1);
3215 876 : operands[4] = x16;
3216 876 : if (!const0_operand (operands[4], E_V8QImode))
3217 : return -1;
3218 : return 0;
3219 : }
3220 :
3221 : int
3222 28 : pattern940 (rtx x1)
3223 : {
3224 28 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3225 28 : rtx x2, x3, x4, x5;
3226 28 : int res ATTRIBUTE_UNUSED;
3227 28 : x2 = XVECEXP (x1, 0, 1);
3228 28 : x3 = XEXP (x2, 0);
3229 28 : operands[2] = x3;
3230 28 : if (!memory_operand (operands[2], E_DImode))
3231 : return -1;
3232 28 : x4 = XVECEXP (x1, 0, 0);
3233 28 : x5 = XEXP (x4, 1);
3234 28 : return pattern389 (x5); /* [-1, 2] */
3235 : }
3236 :
3237 : int
3238 276 : pattern944 (rtx x1, machine_mode i1)
3239 : {
3240 276 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3241 276 : rtx x2, x3;
3242 276 : int res ATTRIBUTE_UNUSED;
3243 276 : if (!nonimmediate_operand (operands[0], i1)
3244 276 : || GET_MODE (x1) != i1)
3245 : return -1;
3246 276 : x2 = XEXP (x1, 0);
3247 276 : if (GET_MODE (x2) != i1
3248 276 : || !nonimmediate_operand (operands[1], i1))
3249 46 : return -1;
3250 230 : x3 = XEXP (x2, 1);
3251 230 : if (GET_MODE (x3) != i1
3252 230 : || !x86_64_immediate_operand (operands[2], i1))
3253 58 : return -1;
3254 : return 0;
3255 : }
3256 :
3257 : int
3258 23506 : pattern952 (rtx x1)
3259 : {
3260 23506 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3261 23506 : rtx x2, x3, x4, x5, x6;
3262 23506 : int res ATTRIBUTE_UNUSED;
3263 23506 : x2 = XEXP (x1, 0);
3264 23506 : operands[0] = x2;
3265 23506 : x3 = XEXP (x1, 1);
3266 23506 : x4 = XEXP (x3, 0);
3267 23506 : x5 = XEXP (x4, 0);
3268 23506 : operands[1] = x5;
3269 23506 : x6 = XEXP (x3, 1);
3270 23506 : if (!rtx_equal_p (x6, operands[1]))
3271 : return -1;
3272 872 : switch (GET_MODE (operands[0]))
3273 : {
3274 377 : case E_SImode:
3275 377 : return pattern936 (x3,
3276 377 : E_SImode); /* [-1, 0] */
3277 :
3278 477 : case E_DImode:
3279 477 : if (pattern936 (x3,
3280 : E_DImode) != 0)
3281 : return -1;
3282 : return 1;
3283 :
3284 : default:
3285 : return -1;
3286 : }
3287 : }
3288 :
3289 : int
3290 3030500 : pattern961 (rtx x1, machine_mode i1, machine_mode i2)
3291 : {
3292 3030500 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3293 3030500 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
3294 3030500 : rtx x10, x11, x12, x13, x14, x15, x16, x17;
3295 3030500 : rtx x18;
3296 3030500 : int res ATTRIBUTE_UNUSED;
3297 3030500 : x2 = XEXP (x1, 0);
3298 3030500 : operands[2] = x2;
3299 3030500 : if (!general_reg_operand (operands[2], i2))
3300 : return -1;
3301 1925413 : x3 = XEXP (x1, 1);
3302 1925413 : operands[3] = x3;
3303 1925413 : if (!general_reg_operand (operands[3], i2))
3304 : return -1;
3305 334262 : x4 = PATTERN (peep2_next_insn (2));
3306 334262 : if (GET_CODE (x4) != PARALLEL)
3307 : return -1;
3308 24992 : switch (XVECLEN (x4, 0))
3309 : {
3310 14620 : case 2:
3311 14620 : x5 = XVECEXP (x4, 0, 0);
3312 14620 : if (GET_CODE (x5) != SET)
3313 : return -1;
3314 14591 : x6 = XEXP (x5, 1);
3315 14591 : if (GET_CODE (x6) != MULT)
3316 : return -1;
3317 2345 : x7 = XEXP (x5, 0);
3318 2345 : operands[4] = x7;
3319 2345 : x8 = XEXP (x6, 0);
3320 2345 : switch (GET_CODE (x8))
3321 : {
3322 1606 : case ZERO_EXTEND:
3323 1606 : if (GET_MODE (x8) != i1)
3324 : return -1;
3325 1606 : x9 = XEXP (x6, 1);
3326 1606 : if (GET_CODE (x9) != ZERO_EXTEND
3327 1606 : || GET_MODE (x9) != i1)
3328 : return -1;
3329 1606 : x10 = XVECEXP (x4, 0, 1);
3330 1606 : if (GET_CODE (x10) != CLOBBER)
3331 : return -1;
3332 1606 : x11 = XEXP (x10, 0);
3333 1606 : if (GET_CODE (x11) != REG
3334 1606 : || REGNO (x11) != 17
3335 1606 : || GET_MODE (x11) != E_CCmode
3336 1606 : || !general_reg_operand (operands[4], i1)
3337 3212 : || GET_MODE (x6) != i1)
3338 0 : return -1;
3339 1606 : x12 = XEXP (x8, 0);
3340 1606 : if (!rtx_equal_p (x12, operands[2]))
3341 : return -1;
3342 1600 : x13 = XEXP (x9, 0);
3343 1600 : if (!rtx_equal_p (x13, operands[0]))
3344 : return -1;
3345 : return 0;
3346 :
3347 450 : case REG:
3348 450 : if (!rtx_equal_p (x8, operands[2]))
3349 : return -1;
3350 441 : x10 = XVECEXP (x4, 0, 1);
3351 441 : if (GET_CODE (x10) != SET)
3352 : return -1;
3353 4 : x14 = XEXP (x10, 1);
3354 4 : if (GET_CODE (x14) != UMUL_HIGHPART
3355 4 : || GET_MODE (x14) != i2
3356 4 : || !general_reg_operand (operands[4], i2)
3357 8 : || GET_MODE (x6) != i2)
3358 0 : return -1;
3359 4 : x11 = XEXP (x10, 0);
3360 4 : operands[5] = x11;
3361 4 : if (!general_reg_operand (operands[5], i2))
3362 : return -1;
3363 4 : x9 = XEXP (x6, 1);
3364 4 : if (!rtx_equal_p (x9, operands[0]))
3365 : return -1;
3366 4 : x15 = XEXP (x14, 0);
3367 4 : if (!rtx_equal_p (x15, operands[2]))
3368 : return -1;
3369 4 : x16 = XEXP (x14, 1);
3370 4 : if (!rtx_equal_p (x16, operands[0]))
3371 : return -1;
3372 : return 1;
3373 :
3374 : default:
3375 : return -1;
3376 : }
3377 :
3378 8197 : case 3:
3379 8197 : x5 = XVECEXP (x4, 0, 0);
3380 8197 : if (GET_CODE (x5) != SET)
3381 : return -1;
3382 8197 : x10 = XVECEXP (x4, 0, 1);
3383 8197 : if (GET_CODE (x10) != CLOBBER)
3384 : return -1;
3385 6763 : x17 = XVECEXP (x4, 0, 2);
3386 6763 : if (GET_CODE (x17) != CLOBBER)
3387 : return -1;
3388 6763 : x18 = XEXP (x17, 0);
3389 6763 : if (GET_CODE (x18) != REG
3390 6761 : || REGNO (x18) != 17
3391 13524 : || GET_MODE (x18) != E_CCmode)
3392 : return -1;
3393 6761 : x7 = XEXP (x5, 0);
3394 6761 : operands[4] = x7;
3395 6761 : return 2;
3396 :
3397 : default:
3398 : return -1;
3399 : }
3400 : }
3401 :
3402 : int
3403 460 : pattern986 (rtx x1)
3404 : {
3405 460 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3406 460 : int res ATTRIBUTE_UNUSED;
3407 460 : switch (GET_MODE (x1))
3408 : {
3409 118 : case E_HImode:
3410 118 : switch (GET_MODE (operands[1]))
3411 : {
3412 23 : case E_V16SImode:
3413 23 : if (!nonimmediate_operand (operands[1], E_V16SImode)
3414 20 : || !nonimmediate_operand (operands[2], E_V16SImode)
3415 40 : || !const_0_to_7_operand (operands[3], E_SImode))
3416 6 : return -1;
3417 : return 0;
3418 :
3419 18 : case E_V16HFmode:
3420 18 : if (!nonimmediate_operand (operands[1], E_V16HFmode)
3421 16 : || !nonimmediate_operand (operands[2], E_V16HFmode)
3422 34 : || !const_0_to_31_operand (operands[3], E_SImode))
3423 2 : return -1;
3424 : return 1;
3425 :
3426 22 : case E_V16SFmode:
3427 22 : if (!nonimmediate_operand (operands[1], E_V16SFmode)
3428 20 : || !nonimmediate_operand (operands[2], E_V16SFmode)
3429 42 : || !const_0_to_31_operand (operands[3], E_SImode))
3430 2 : return -1;
3431 : return 2;
3432 :
3433 32 : case E_V16QImode:
3434 32 : if (!nonimmediate_operand (operands[1], E_V16QImode)
3435 30 : || !nonimmediate_operand (operands[2], E_V16QImode)
3436 50 : || !const_0_to_7_operand (operands[3], E_SImode))
3437 14 : return -1;
3438 : return 3;
3439 :
3440 18 : case E_V16HImode:
3441 18 : if (!nonimmediate_operand (operands[1], E_V16HImode)
3442 16 : || !nonimmediate_operand (operands[2], E_V16HImode)
3443 30 : || !const_0_to_7_operand (operands[3], E_SImode))
3444 6 : return -1;
3445 : return 4;
3446 :
3447 : default:
3448 : return -1;
3449 : }
3450 :
3451 321 : case E_QImode:
3452 321 : switch (GET_MODE (operands[1]))
3453 : {
3454 42 : case E_V8SImode:
3455 42 : if (!nonimmediate_operand (operands[1], E_V8SImode)
3456 39 : || !nonimmediate_operand (operands[2], E_V8SImode)
3457 69 : || !const_0_to_7_operand (operands[3], E_SImode))
3458 15 : return -1;
3459 : return 5;
3460 :
3461 24 : case E_V4SImode:
3462 24 : if (!nonimmediate_operand (operands[1], E_V4SImode)
3463 21 : || !nonimmediate_operand (operands[2], E_V4SImode)
3464 43 : || !const_0_to_7_operand (operands[3], E_SImode))
3465 5 : return -1;
3466 : return 6;
3467 :
3468 30 : case E_V8DImode:
3469 30 : if (!nonimmediate_operand (operands[1], E_V8DImode)
3470 22 : || !nonimmediate_operand (operands[2], E_V8DImode)
3471 50 : || !const_0_to_7_operand (operands[3], E_SImode))
3472 10 : return -1;
3473 : return 7;
3474 :
3475 23 : case E_V4DImode:
3476 23 : if (!nonimmediate_operand (operands[1], E_V4DImode)
3477 20 : || !nonimmediate_operand (operands[2], E_V4DImode)
3478 41 : || !const_0_to_7_operand (operands[3], E_SImode))
3479 5 : return -1;
3480 : return 8;
3481 :
3482 23 : case E_V2DImode:
3483 23 : if (!nonimmediate_operand (operands[1], E_V2DImode)
3484 20 : || !nonimmediate_operand (operands[2], E_V2DImode)
3485 41 : || !const_0_to_7_operand (operands[3], E_SImode))
3486 5 : return -1;
3487 : return 9;
3488 :
3489 31 : case E_V8HFmode:
3490 31 : if (!nonimmediate_operand (operands[1], E_V8HFmode)
3491 31 : || !nonimmediate_operand (operands[2], E_V8HFmode)
3492 62 : || !const_0_to_31_operand (operands[3], E_SImode))
3493 0 : return -1;
3494 : return 10;
3495 :
3496 21 : case E_V8SFmode:
3497 21 : if (!nonimmediate_operand (operands[1], E_V8SFmode)
3498 18 : || !nonimmediate_operand (operands[2], E_V8SFmode)
3499 39 : || !const_0_to_31_operand (operands[3], E_SImode))
3500 3 : return -1;
3501 : return 11;
3502 :
3503 21 : case E_V4SFmode:
3504 21 : if (!nonimmediate_operand (operands[1], E_V4SFmode)
3505 18 : || !nonimmediate_operand (operands[2], E_V4SFmode)
3506 39 : || !const_0_to_31_operand (operands[3], E_SImode))
3507 3 : return -1;
3508 : return 12;
3509 :
3510 33 : case E_V8DFmode:
3511 33 : if (!nonimmediate_operand (operands[1], E_V8DFmode)
3512 30 : || !nonimmediate_operand (operands[2], E_V8DFmode)
3513 63 : || !const_0_to_31_operand (operands[3], E_SImode))
3514 3 : return -1;
3515 : return 13;
3516 :
3517 21 : case E_V4DFmode:
3518 21 : if (!nonimmediate_operand (operands[1], E_V4DFmode)
3519 18 : || !nonimmediate_operand (operands[2], E_V4DFmode)
3520 39 : || !const_0_to_31_operand (operands[3], E_SImode))
3521 3 : return -1;
3522 : return 14;
3523 :
3524 21 : case E_V2DFmode:
3525 21 : if (!nonimmediate_operand (operands[1], E_V2DFmode)
3526 18 : || !nonimmediate_operand (operands[2], E_V2DFmode)
3527 39 : || !const_0_to_31_operand (operands[3], E_SImode))
3528 3 : return -1;
3529 : return 15;
3530 :
3531 26 : case E_V8HImode:
3532 26 : if (!nonimmediate_operand (operands[1], E_V8HImode)
3533 26 : || !nonimmediate_operand (operands[2], E_V8HImode)
3534 50 : || !const_0_to_7_operand (operands[3], E_SImode))
3535 2 : return -1;
3536 : return 16;
3537 :
3538 : default:
3539 : return -1;
3540 : }
3541 :
3542 21 : case E_SImode:
3543 21 : switch (GET_MODE (operands[1]))
3544 : {
3545 7 : case E_V32HFmode:
3546 7 : if (!nonimmediate_operand (operands[1], E_V32HFmode)
3547 6 : || !nonimmediate_operand (operands[2], E_V32HFmode)
3548 13 : || !const_0_to_31_operand (operands[3], E_SImode))
3549 1 : return -1;
3550 : return 17;
3551 :
3552 7 : case E_V32QImode:
3553 7 : if (!nonimmediate_operand (operands[1], E_V32QImode)
3554 6 : || !nonimmediate_operand (operands[2], E_V32QImode)
3555 13 : || !const_0_to_7_operand (operands[3], E_SImode))
3556 1 : return -1;
3557 : return 18;
3558 :
3559 7 : case E_V32HImode:
3560 7 : if (!nonimmediate_operand (operands[1], E_V32HImode)
3561 6 : || !nonimmediate_operand (operands[2], E_V32HImode)
3562 13 : || !const_0_to_7_operand (operands[3], E_SImode))
3563 1 : return -1;
3564 : return 19;
3565 :
3566 : default:
3567 : return -1;
3568 : }
3569 :
3570 0 : case E_DImode:
3571 0 : if (!nonimmediate_operand (operands[1], E_V64QImode)
3572 0 : || !nonimmediate_operand (operands[2], E_V64QImode)
3573 0 : || !const_0_to_7_operand (operands[3], E_SImode))
3574 0 : return -1;
3575 : return 20;
3576 :
3577 : default:
3578 : return -1;
3579 : }
3580 : }
3581 :
3582 : int
3583 259060 : pattern1058 (rtx x1, rtx_code i1)
3584 : {
3585 259060 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3586 259060 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
3587 259060 : rtx x10, x11, x12;
3588 259060 : int res ATTRIBUTE_UNUSED;
3589 259060 : x2 = XEXP (x1, 0);
3590 259060 : x3 = XEXP (x2, 1);
3591 259060 : switch (GET_CODE (x3))
3592 : {
3593 20898 : case AND:
3594 20898 : if (GET_MODE (x3) != E_QImode)
3595 : return -1;
3596 20898 : x4 = XEXP (x3, 1);
3597 20898 : if (GET_CODE (x4) != CONST_INT)
3598 : return -1;
3599 20898 : x5 = XEXP (x1, 1);
3600 20898 : if (GET_CODE (x5) != SUBREG
3601 20898 : || maybe_ne (SUBREG_BYTE (x5), 0))
3602 : return -1;
3603 20855 : x6 = XEXP (x5, 0);
3604 20855 : if (GET_CODE (x6) != i1)
3605 : return -1;
3606 20855 : x7 = XEXP (x6, 0);
3607 20855 : if (GET_CODE (x7) != ZERO_EXTEND)
3608 : return -1;
3609 20855 : x8 = XEXP (x6, 1);
3610 20855 : if (GET_CODE (x8) != MINUS
3611 20855 : || GET_MODE (x8) != E_QImode)
3612 : return -1;
3613 20855 : x9 = XEXP (x8, 0);
3614 20855 : if (GET_CODE (x9) != CONST_INT)
3615 : return -1;
3616 20855 : x10 = XEXP (x8, 1);
3617 20855 : if (GET_CODE (x10) != AND
3618 20855 : || GET_MODE (x10) != E_QImode)
3619 : return -1;
3620 20855 : x11 = XEXP (x10, 1);
3621 20855 : if (GET_CODE (x11) != CONST_INT)
3622 : return -1;
3623 20855 : x12 = XEXP (x3, 0);
3624 20855 : if (!nonmemory_operand (x12, E_QImode))
3625 : return -1;
3626 20851 : switch (XWINT (x4, 0))
3627 : {
3628 12189 : case 63L:
3629 12189 : if (XWINT (x9, 0) != 64L
3630 12189 : || XWINT (x11, 0) != 63L
3631 24378 : || pattern1057 (x1,
3632 : E_DImode,
3633 : E_TImode) != 0)
3634 32 : return -1;
3635 : return 0;
3636 :
3637 8659 : case 31L:
3638 8659 : if (XWINT (x9, 0) != 32L
3639 8659 : || XWINT (x11, 0) != 31L)
3640 : return -1;
3641 : return 1;
3642 :
3643 : default:
3644 : return -1;
3645 : }
3646 :
3647 : case CONST_INT:
3648 : case CONST_WIDE_INT:
3649 : case CONST_POLY_INT:
3650 : case CONST_FIXED:
3651 : case CONST_DOUBLE:
3652 : case CONST_VECTOR:
3653 : case CONST:
3654 : case REG:
3655 : case SUBREG:
3656 : case LABEL_REF:
3657 : case SYMBOL_REF:
3658 : case HIGH:
3659 : return 2;
3660 :
3661 : default:
3662 : return -1;
3663 : }
3664 : }
3665 :
3666 : int
3667 92 : pattern1077 (rtx x1, machine_mode i1, machine_mode i2)
3668 : {
3669 92 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3670 92 : rtx x2;
3671 92 : int res ATTRIBUTE_UNUSED;
3672 92 : if (!memory_operand (operands[0], i2)
3673 92 : || GET_MODE (x1) != i2)
3674 : return -1;
3675 88 : x2 = XVECEXP (x1, 0, 0);
3676 88 : if (GET_MODE (x2) != i2
3677 88 : || !register_operand (operands[1], i1))
3678 0 : return -1;
3679 : return 0;
3680 : }
3681 :
3682 : int
3683 33897 : pattern1080 (rtx x1)
3684 : {
3685 33897 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3686 33897 : rtx x2, x3, x4, x5;
3687 33897 : int res ATTRIBUTE_UNUSED;
3688 33897 : if (!int248_register_operand (operands[2], E_VOIDmode))
3689 : return -1;
3690 31373 : x2 = XEXP (x1, 1);
3691 31373 : x3 = XEXP (x2, 1);
3692 31373 : operands[1] = x3;
3693 31373 : if (!nonimmediate_operand (operands[1], E_QImode))
3694 : return -1;
3695 16405 : x4 = XEXP (x1, 0);
3696 16405 : switch (GET_CODE (x4))
3697 : {
3698 30 : case STRICT_LOW_PART:
3699 30 : x5 = XEXP (x4, 0);
3700 30 : operands[0] = x5;
3701 30 : if (!register_operand (operands[0], E_QImode))
3702 : return -1;
3703 30 : return pattern1079 (); /* [-1, 2] */
3704 :
3705 16375 : case REG:
3706 16375 : case SUBREG:
3707 16375 : case MEM:
3708 16375 : operands[0] = x4;
3709 16375 : if (!nonimmediate_operand (operands[0], E_QImode))
3710 : return -1;
3711 16375 : res = pattern1079 ();
3712 16375 : if (res >= 0)
3713 129 : return res + 3; /* [3, 5] */
3714 : return -1;
3715 :
3716 : default:
3717 : return -1;
3718 : }
3719 : }
3720 :
3721 : int
3722 644 : pattern1094 (rtx x1, machine_mode i1)
3723 : {
3724 644 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3725 644 : int res ATTRIBUTE_UNUSED;
3726 644 : if (!nonimmediate_operand (operands[0], i1)
3727 644 : || GET_MODE (x1) != i1
3728 644 : || !ix86_carry_flag_unset_operator (operands[2], i1)
3729 1034 : || !nonimmediate_operand (operands[1], i1))
3730 489 : return -1;
3731 : return 0;
3732 : }
3733 :
3734 : int
3735 14 : pattern1102 (rtx x1, machine_mode i1)
3736 : {
3737 14 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3738 14 : rtx x2, x3;
3739 14 : int res ATTRIBUTE_UNUSED;
3740 14 : if (!register_operand (operands[0], i1)
3741 14 : || GET_MODE (x1) != i1)
3742 : return -1;
3743 14 : x2 = XEXP (x1, 0);
3744 14 : if (GET_MODE (x2) != i1)
3745 : return -1;
3746 14 : x3 = XEXP (x2, 0);
3747 14 : if (GET_MODE (x3) != i1
3748 14 : || !register_operand (operands[1], i1))
3749 10 : return -1;
3750 : return 0;
3751 : }
3752 :
3753 : int
3754 53 : pattern1107 (rtx x1)
3755 : {
3756 53 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3757 53 : rtx x2, x3, x4;
3758 53 : int res ATTRIBUTE_UNUSED;
3759 53 : x2 = XEXP (x1, 0);
3760 53 : x3 = XEXP (x2, 0);
3761 53 : operands[1] = x3;
3762 53 : x4 = XEXP (x2, 1);
3763 53 : operands[2] = x4;
3764 53 : if (!const_int_operand (operands[2], E_QImode))
3765 : return -1;
3766 53 : switch (GET_MODE (x1))
3767 : {
3768 14 : case E_V8SFmode:
3769 14 : if (GET_MODE (x2) != E_V8SImode
3770 14 : || !register_operand (operands[1], E_V8SImode))
3771 0 : return -1;
3772 : return 0;
3773 :
3774 16 : case E_V4SFmode:
3775 16 : if (GET_MODE (x2) != E_V4SImode
3776 16 : || !register_operand (operands[1], E_V4SImode))
3777 0 : return -1;
3778 : return 1;
3779 :
3780 0 : case E_V4DFmode:
3781 0 : if (GET_MODE (x2) != E_V4DImode
3782 0 : || !register_operand (operands[1], E_V4DImode))
3783 0 : return -1;
3784 : return 2;
3785 :
3786 14 : case E_V2DFmode:
3787 14 : if (GET_MODE (x2) != E_V2DImode
3788 14 : || !register_operand (operands[1], E_V2DImode))
3789 0 : return -1;
3790 : return 3;
3791 :
3792 : default:
3793 : return -1;
3794 : }
3795 : }
3796 :
3797 : int
3798 1349 : pattern1116 (rtx x1, machine_mode i1, machine_mode i2, machine_mode i3)
3799 : {
3800 1349 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3801 1349 : rtx x2;
3802 1349 : int res ATTRIBUTE_UNUSED;
3803 1349 : if (!register_operand (operands[0], i2)
3804 1349 : || GET_MODE (x1) != i2)
3805 : return -1;
3806 1293 : x2 = XEXP (x1, 0);
3807 1293 : if (GET_MODE (x2) != i2
3808 1293 : || !register_operand (operands[1], i3)
3809 1293 : || !vector_operand (operands[2], i3)
3810 1293 : || !nonimm_or_0_operand (operands[3], i2)
3811 2540 : || !register_operand (operands[4], i1))
3812 106 : return -1;
3813 : return 0;
3814 : }
3815 :
3816 : int
3817 2795 : pattern1122 (rtx x1, machine_mode i1)
3818 : {
3819 2795 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3820 2795 : rtx x2, x3;
3821 2795 : int res ATTRIBUTE_UNUSED;
3822 2795 : if (!register_operand (operands[0], i1)
3823 2795 : || GET_MODE (x1) != i1)
3824 : return -1;
3825 2729 : x2 = XEXP (x1, 0);
3826 2729 : if (GET_MODE (x2) != i1)
3827 : return -1;
3828 2729 : x3 = XEXP (x2, 0);
3829 2729 : if (GET_MODE (x3) != i1
3830 2729 : || !register_operand (operands[1], i1)
3831 2729 : || !nonimmediate_operand (operands[2], i1)
3832 5458 : || !nonimm_or_0_operand (operands[4], i1))
3833 0 : return -1;
3834 : return 0;
3835 : }
3836 :
3837 : int
3838 14997 : pattern1130 (rtx x1, machine_mode i1)
3839 : {
3840 14997 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3841 14997 : int res ATTRIBUTE_UNUSED;
3842 14997 : if (!register_operand (operands[0], i1)
3843 14953 : || GET_MODE (x1) != i1
3844 14953 : || !nonimmediate_operand (operands[2], i1)
3845 12890 : || !register_operand (operands[1], i1)
3846 21998 : || !avx2_pblendw_operand (operands[3], E_SImode))
3847 8086 : return -1;
3848 : return 0;
3849 : }
3850 :
3851 : int
3852 1093 : pattern1136 (rtx x1, machine_mode i1, machine_mode i2, machine_mode i3, machine_mode i4)
3853 : {
3854 1093 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3855 1093 : int res ATTRIBUTE_UNUSED;
3856 1093 : if (GET_MODE (x1) != i4
3857 1093 : || !register_operand (operands[1], i3)
3858 1093 : || !nonimm_or_0_operand (operands[3], i2)
3859 2167 : || !register_operand (operands[4], i1))
3860 71 : return -1;
3861 : return 0;
3862 : }
3863 :
3864 : int
3865 1696 : pattern1142 (rtx x1)
3866 : {
3867 1696 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3868 1696 : rtx x2, x3, x4, x5, x6, x7, x8;
3869 1696 : int res ATTRIBUTE_UNUSED;
3870 1696 : x2 = XVECEXP (x1, 0, 0);
3871 1696 : x3 = XEXP (x2, 0);
3872 1696 : x4 = XVECEXP (x3, 0, 2);
3873 1696 : operands[3] = x4;
3874 1696 : x5 = XVECEXP (x1, 0, 1);
3875 1696 : if (!const_4_or_8_to_11_operand (x5, E_SImode))
3876 : return -1;
3877 1696 : x6 = XEXP (x2, 1);
3878 1696 : switch (GET_CODE (x6))
3879 : {
3880 448 : case CONST_INT:
3881 448 : case CONST_DOUBLE:
3882 448 : case CONST_VECTOR:
3883 448 : operands[4] = x6;
3884 448 : if (!const0_operand (operands[4], E_V32HFmode))
3885 : return -1;
3886 448 : x7 = XEXP (x2, 2);
3887 448 : if (GET_CODE (x7) != UNSPEC
3888 448 : || XVECLEN (x7, 0) != 1
3889 448 : || XINT (x7, 1) != 224
3890 448 : || GET_MODE (x7) != E_SImode
3891 448 : || !register_operand (operands[0], E_V32HFmode)
3892 428 : || GET_MODE (x1) != E_V32HFmode
3893 428 : || GET_MODE (x2) != E_V32HFmode
3894 428 : || GET_MODE (x3) != E_V32HFmode
3895 428 : || !register_operand (operands[1], E_V32HFmode)
3896 428 : || !register_operand (operands[2], E_V32HFmode)
3897 866 : || !register_operand (operands[3], E_V32HFmode))
3898 38 : return -1;
3899 410 : x8 = XVECEXP (x7, 0, 0);
3900 410 : operands[5] = x8;
3901 410 : if (!register_operand (operands[5], E_HImode))
3902 : return -1;
3903 384 : operands[6] = x5;
3904 384 : return 0;
3905 :
3906 1232 : case REG:
3907 1232 : case SUBREG:
3908 1232 : x7 = XEXP (x2, 2);
3909 1232 : switch (GET_CODE (x7))
3910 : {
3911 864 : case UNSPEC:
3912 864 : if (XVECLEN (x7, 0) != 1
3913 864 : || XINT (x7, 1) != 224
3914 864 : || GET_MODE (x7) != E_SImode
3915 864 : || !register_operand (operands[0], E_V32HFmode)
3916 846 : || GET_MODE (x1) != E_V32HFmode
3917 846 : || GET_MODE (x2) != E_V32HFmode
3918 846 : || GET_MODE (x3) != E_V32HFmode
3919 846 : || !register_operand (operands[1], E_V32HFmode)
3920 846 : || !register_operand (operands[2], E_V32HFmode)
3921 1690 : || !register_operand (operands[3], E_V32HFmode))
3922 54 : return -1;
3923 810 : x8 = XVECEXP (x7, 0, 0);
3924 810 : operands[4] = x8;
3925 810 : if (!register_operand (operands[4], E_HImode))
3926 : return -1;
3927 762 : operands[5] = x5;
3928 762 : if (!rtx_equal_p (x6, operands[1]))
3929 : return -1;
3930 : return 1;
3931 :
3932 368 : case CONST_INT:
3933 368 : if (XWINT (x7, 0) != 3L
3934 368 : || !register_operand (operands[0], E_V8HFmode)
3935 352 : || GET_MODE (x1) != E_V8HFmode
3936 352 : || GET_MODE (x2) != E_V8HFmode
3937 352 : || GET_MODE (x3) != E_V8HFmode
3938 352 : || !register_operand (operands[1], E_V8HFmode)
3939 348 : || !register_operand (operands[2], E_V8HFmode)
3940 716 : || !register_operand (operands[3], E_V8HFmode))
3941 28 : return -1;
3942 340 : operands[4] = x5;
3943 340 : if (!rtx_equal_p (x6, operands[2]))
3944 : return -1;
3945 : return 2;
3946 :
3947 : default:
3948 : return -1;
3949 : }
3950 :
3951 : default:
3952 : return -1;
3953 : }
3954 : }
3955 :
3956 : int
3957 18476672 : pattern1186 (rtx x1)
3958 : {
3959 18476672 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3960 18476672 : rtx x2, x3, x4;
3961 18476672 : int res ATTRIBUTE_UNUSED;
3962 18476672 : x2 = XEXP (x1, 1);
3963 18476672 : x3 = XEXP (x2, 1);
3964 18476672 : operands[2] = x3;
3965 18476672 : x4 = XEXP (x1, 0);
3966 18476672 : switch (GET_CODE (x4))
3967 : {
3968 18475297 : case REG:
3969 18475297 : case SUBREG:
3970 18475297 : case MEM:
3971 18475297 : operands[0] = x4;
3972 18475297 : return 0;
3973 :
3974 1375 : case STRICT_LOW_PART:
3975 1375 : res = pattern559 (x1);
3976 1375 : if (res >= 0)
3977 1270 : return res + 1; /* [1, 2] */
3978 : return -1;
3979 :
3980 : default:
3981 : return -1;
3982 : }
3983 : }
3984 :
3985 : int
3986 683 : pattern1195 (rtx x1, machine_mode i1, machine_mode i2)
3987 : {
3988 683 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3989 683 : int res ATTRIBUTE_UNUSED;
3990 683 : if (!register_operand (operands[0], i2)
3991 677 : || GET_MODE (x1) != i2
3992 677 : || !const0_operand (operands[2], i2)
3993 8 : || !vector_all_ones_operand (operands[3], i2)
3994 683 : || !register_operand (operands[1], i1))
3995 683 : return -1;
3996 : return 0;
3997 : }
3998 :
3999 : int
4000 2816 : pattern1201 (rtx x1, machine_mode i1)
4001 : {
4002 2816 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4003 2816 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
4004 2816 : rtx x10, x11, x12, x13, x14;
4005 2816 : int res ATTRIBUTE_UNUSED;
4006 2816 : x2 = XVECEXP (x1, 0, 0);
4007 2816 : x3 = XEXP (x2, 1);
4008 2816 : x4 = XEXP (x3, 0);
4009 2816 : if (GET_MODE (x4) != i1)
4010 : return -1;
4011 2816 : x5 = XVECEXP (x1, 0, 1);
4012 2816 : x6 = XEXP (x5, 1);
4013 2816 : if (GET_CODE (x6) != PLUS)
4014 : return -1;
4015 2816 : x7 = XEXP (x2, 0);
4016 2816 : if (GET_MODE (x7) != E_CCCmode
4017 262 : || GET_MODE (x3) != E_CCCmode)
4018 : return -1;
4019 262 : x8 = XEXP (x4, 1);
4020 262 : operands[2] = x8;
4021 262 : if (!memory_operand (operands[2], i1))
4022 : return -1;
4023 134 : x9 = XEXP (x4, 0);
4024 134 : if (!rtx_equal_p (x9, operands[0]))
4025 : return -1;
4026 134 : x10 = XEXP (x3, 1);
4027 134 : if (!rtx_equal_p (x10, operands[0]))
4028 : return -1;
4029 134 : x11 = XEXP (x6, 0);
4030 134 : if (!rtx_equal_p (x11, operands[0]))
4031 : return -1;
4032 134 : x12 = XEXP (x6, 1);
4033 134 : if (!rtx_equal_p (x12, operands[2]))
4034 : return -1;
4035 134 : x13 = PATTERN (peep2_next_insn (2));
4036 134 : x14 = XEXP (x13, 0);
4037 134 : if (!rtx_equal_p (x14, operands[1]))
4038 : return -1;
4039 : return 0;
4040 : }
4041 :
4042 : int
4043 625 : pattern1211 (rtx x1, machine_mode i1, rtx_code i2, machine_mode i3, rtx_code i4)
4044 : {
4045 625 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4046 625 : rtx x2;
4047 625 : int res ATTRIBUTE_UNUSED;
4048 625 : if (GET_CODE (x1) != i4
4049 625 : || GET_MODE (x1) != i3)
4050 : return -1;
4051 625 : x2 = XEXP (x1, 0);
4052 625 : if (GET_CODE (x2) != i2
4053 625 : || GET_MODE (x2) != i1)
4054 0 : return -1;
4055 : return 0;
4056 : }
4057 :
4058 : int
4059 7015 : pattern1216 (rtx x1, machine_mode i1)
4060 : {
4061 7015 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4062 7015 : int res ATTRIBUTE_UNUSED;
4063 7015 : if (!nonimmediate_operand (operands[0], i1)
4064 7015 : || GET_MODE (x1) != i1
4065 7015 : || !nonimmediate_operand (operands[1], i1)
4066 13013 : || !ix86_carry_flag_operator (operands[2], i1))
4067 1017 : return -1;
4068 : return 0;
4069 : }
4070 :
4071 : int
4072 1933 : pattern1221 (rtx x1, machine_mode i1, machine_mode i2)
4073 : {
4074 1933 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4075 1933 : rtx x2;
4076 1933 : int res ATTRIBUTE_UNUSED;
4077 1933 : if (!register_operand (operands[0], i1)
4078 1933 : || GET_MODE (x1) != i1)
4079 : return -1;
4080 1799 : x2 = XEXP (x1, 0);
4081 1799 : if (GET_MODE (x2) != i1
4082 1799 : || !vector_operand (operands[1], i1)
4083 1799 : || !nonimm_or_0_operand (operands[3], i1)
4084 3568 : || !register_operand (operands[4], i2))
4085 139 : return -1;
4086 : return 0;
4087 : }
4088 :
4089 : int
4090 652 : pattern1229 (rtx x1, machine_mode i1)
4091 : {
4092 652 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4093 652 : rtx x2;
4094 652 : int res ATTRIBUTE_UNUSED;
4095 652 : if (!register_operand (operands[0], i1)
4096 652 : || GET_MODE (x1) != i1)
4097 : return -1;
4098 626 : x2 = XVECEXP (x1, 0, 0);
4099 626 : if (GET_MODE (x2) != i1
4100 626 : || !nonimmediate_operand (operands[1], i1))
4101 2 : return -1;
4102 : return 0;
4103 : }
4104 :
4105 : int
4106 42 : pattern1234 (rtx x1)
4107 : {
4108 42 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4109 42 : rtx x2, x3, x4, x5, x6, x7;
4110 42 : int res ATTRIBUTE_UNUSED;
4111 42 : x2 = XVECEXP (x1, 0, 2);
4112 42 : x3 = XEXP (x2, 0);
4113 42 : x4 = XEXP (x3, 0);
4114 42 : if (maybe_ne (SUBREG_BYTE (x4), 0))
4115 : return -1;
4116 42 : x5 = XEXP (x4, 0);
4117 42 : if (GET_CODE (x5) != NOT)
4118 : return -1;
4119 18 : x6 = XEXP (x5, 0);
4120 18 : operands[3] = x6;
4121 18 : x7 = XEXP (x3, 1);
4122 18 : operands[4] = x7;
4123 18 : switch (GET_MODE (operands[0]))
4124 : {
4125 18 : case E_V16QImode:
4126 18 : if (!register_operand (operands[0], E_V16QImode)
4127 18 : || GET_MODE (x1) != E_V16QImode
4128 18 : || !register_operand (operands[1], E_V16QImode)
4129 18 : || !vector_operand (operands[2], E_V16QImode)
4130 18 : || GET_MODE (x2) != E_V16QImode
4131 18 : || GET_MODE (x5) != E_V16QImode
4132 36 : || !register_operand (operands[3], E_V16QImode))
4133 0 : return -1;
4134 18 : switch (GET_MODE (x3))
4135 : {
4136 18 : case E_V4SImode:
4137 18 : if (GET_MODE (x4) != E_V4SImode
4138 18 : || !const0_operand (operands[4], E_V4SImode))
4139 0 : return -1;
4140 : return 0;
4141 :
4142 0 : case E_V2DImode:
4143 0 : if (GET_MODE (x4) != E_V2DImode
4144 0 : || !const0_operand (operands[4], E_V2DImode))
4145 0 : return -1;
4146 : return 1;
4147 :
4148 : default:
4149 : return -1;
4150 : }
4151 :
4152 0 : case E_V32QImode:
4153 0 : if (!register_operand (operands[0], E_V32QImode)
4154 0 : || GET_MODE (x1) != E_V32QImode
4155 0 : || !register_operand (operands[1], E_V32QImode)
4156 0 : || !vector_operand (operands[2], E_V32QImode)
4157 0 : || GET_MODE (x2) != E_V32QImode
4158 0 : || GET_MODE (x5) != E_V32QImode
4159 0 : || !register_operand (operands[3], E_V32QImode))
4160 0 : return -1;
4161 0 : switch (GET_MODE (x3))
4162 : {
4163 0 : case E_V8SImode:
4164 0 : if (GET_MODE (x4) != E_V8SImode
4165 0 : || !const0_operand (operands[4], E_V8SImode))
4166 0 : return -1;
4167 : return 2;
4168 :
4169 0 : case E_V4DImode:
4170 0 : if (GET_MODE (x4) != E_V4DImode
4171 0 : || !const0_operand (operands[4], E_V4DImode))
4172 0 : return -1;
4173 : return 3;
4174 :
4175 : default:
4176 : return -1;
4177 : }
4178 :
4179 : default:
4180 : return -1;
4181 : }
4182 : }
4183 :
4184 : int
4185 58 : pattern1255 (rtx x1)
4186 : {
4187 58 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4188 58 : rtx x2, x3, x4, x5;
4189 58 : int res ATTRIBUTE_UNUSED;
4190 58 : x2 = XEXP (x1, 0);
4191 58 : x3 = XEXP (x2, 0);
4192 58 : x4 = XEXP (x3, 0);
4193 58 : operands[1] = x4;
4194 58 : x5 = XEXP (x3, 1);
4195 58 : operands[2] = x5;
4196 58 : if (!register_operand (operands[2], E_QImode))
4197 : return -1;
4198 50 : switch (GET_MODE (operands[0]))
4199 : {
4200 40 : case E_SImode:
4201 40 : return pattern1254 (x1,
4202 40 : E_SImode); /* [-1, 0] */
4203 :
4204 10 : case E_DImode:
4205 10 : if (pattern1254 (x1,
4206 : E_DImode) != 0)
4207 : return -1;
4208 : return 1;
4209 :
4210 : default:
4211 : return -1;
4212 : }
4213 : }
4214 :
4215 : int
4216 30 : pattern1264 (rtx x1, machine_mode i1)
4217 : {
4218 30 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4219 30 : rtx x2, x3;
4220 30 : int res ATTRIBUTE_UNUSED;
4221 30 : if (!register_operand (operands[0], i1)
4222 30 : || GET_MODE (x1) != i1)
4223 : return -1;
4224 30 : x2 = XEXP (x1, 0);
4225 30 : if (GET_MODE (x2) != i1)
4226 : return -1;
4227 30 : x3 = XEXP (x2, 0);
4228 30 : if (GET_MODE (x3) != i1
4229 30 : || !register_operand (operands[1], i1)
4230 30 : || !const0_operand (operands[3], i1)
4231 33 : || !const0_operand (operands[4], i1))
4232 27 : return -1;
4233 : return 0;
4234 : }
4235 :
4236 : int
4237 0 : pattern1272 (rtx x1, machine_mode i1)
4238 : {
4239 0 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4240 0 : int res ATTRIBUTE_UNUSED;
4241 0 : if (!register_operand (operands[1], i1)
4242 0 : || GET_MODE (x1) != i1)
4243 : return -1;
4244 0 : switch (GET_MODE (operands[2]))
4245 : {
4246 0 : case E_HImode:
4247 0 : if (!nonimmediate_operand (operands[2], E_HImode))
4248 : return -1;
4249 : return 0;
4250 :
4251 0 : case E_SImode:
4252 0 : if (!nonimmediate_operand (operands[2], E_SImode))
4253 : return -1;
4254 : return 1;
4255 :
4256 : default:
4257 : return -1;
4258 : }
4259 : }
4260 :
4261 : int
4262 1682905 : pattern1279 (rtx x1, machine_mode i1)
4263 : {
4264 1682905 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4265 1682905 : int res ATTRIBUTE_UNUSED;
4266 1682905 : if (!register_operand (operands[0], i1)
4267 1654069 : || GET_MODE (x1) != i1
4268 1654069 : || !nonimmediate_operand (operands[2], i1)
4269 3335948 : || !nonimmediate_operand (operands[3], i1))
4270 668679 : return -1;
4271 : return 0;
4272 : }
4273 :
4274 : int
4275 1152 : pattern1286 (rtx x1, machine_mode i1)
4276 : {
4277 1152 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4278 1152 : rtx x2;
4279 1152 : int res ATTRIBUTE_UNUSED;
4280 1152 : if (!register_operand (operands[0], i1)
4281 1152 : || GET_MODE (x1) != i1)
4282 : return -1;
4283 1126 : x2 = XEXP (x1, 0);
4284 1126 : if (GET_MODE (x2) != i1
4285 1126 : || !register_operand (operands[2], i1)
4286 1014 : || !nonimm_or_0_operand (operands[3], i1)
4287 2140 : || !register_operand (operands[1], i1))
4288 126 : return -1;
4289 : return 0;
4290 : }
4291 :
4292 : int
4293 1058 : pattern1292 (rtx x1, machine_mode i1, machine_mode i2, machine_mode i3)
4294 : {
4295 1058 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4296 1058 : rtx x2, x3;
4297 1058 : int res ATTRIBUTE_UNUSED;
4298 1058 : if (!register_operand (operands[0], i1)
4299 1058 : || GET_MODE (x1) != i1)
4300 : return -1;
4301 1046 : x2 = XEXP (x1, 0);
4302 1046 : if (GET_MODE (x2) != i1)
4303 : return -1;
4304 1046 : x3 = XEXP (x2, 0);
4305 1046 : if (GET_MODE (x3) != i2
4306 1046 : || !nonimmediate_operand (operands[1], i1)
4307 1046 : || !nonimm_or_0_operand (operands[2], i1)
4308 2088 : || !register_operand (operands[3], i3))
4309 5 : return -1;
4310 : return 0;
4311 : }
4312 :
4313 : int
4314 787 : pattern1302 (rtx x1, machine_mode i1, machine_mode i2)
4315 : {
4316 787 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4317 787 : rtx x2, x3;
4318 787 : int res ATTRIBUTE_UNUSED;
4319 787 : if (!register_operand (operands[0], i2)
4320 787 : || GET_MODE (x1) != i2)
4321 : return -1;
4322 763 : x2 = XEXP (x1, 0);
4323 763 : if (GET_MODE (x2) != i2)
4324 : return -1;
4325 763 : x3 = XEXP (x2, 0);
4326 763 : if (GET_MODE (x3) != i2
4327 763 : || !nonimmediate_operand (operands[1], i2)
4328 751 : || !nonimmediate_operand (operands[2], i2)
4329 736 : || !nonimmediate_operand (operands[3], i2)
4330 1490 : || !register_operand (operands[4], i1))
4331 36 : return -1;
4332 : return 0;
4333 : }
4334 :
4335 : int
4336 2454 : pattern1310 (rtx x1)
4337 : {
4338 2454 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4339 2454 : rtx x2, x3;
4340 2454 : int res ATTRIBUTE_UNUSED;
4341 2454 : if (!register_operand (operands[0], E_V16SImode)
4342 2454 : || GET_MODE (x1) != E_V16SImode)
4343 : return -1;
4344 2421 : x2 = XVECEXP (x1, 0, 0);
4345 2421 : if (GET_MODE (x2) != E_V16SImode)
4346 : return -1;
4347 2421 : x3 = XEXP (x2, 0);
4348 2421 : if (GET_MODE (x3) != E_V16SImode
4349 2421 : || !nonimm_or_0_operand (operands[2], E_V16SImode)
4350 4842 : || !register_operand (operands[3], E_HImode))
4351 33 : return -1;
4352 2388 : switch (GET_MODE (operands[1]))
4353 : {
4354 1260 : case E_V16HFmode:
4355 1260 : if (!register_operand (operands[1], E_V16HFmode))
4356 : return -1;
4357 : return 0;
4358 :
4359 1128 : case E_V16SFmode:
4360 1128 : if (!register_operand (operands[1], E_V16SFmode))
4361 : return -1;
4362 : return 1;
4363 :
4364 : default:
4365 : return -1;
4366 : }
4367 : }
4368 :
4369 : int
4370 934 : pattern1321 (rtx x1)
4371 : {
4372 934 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4373 934 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
4374 934 : rtx x10, x11, x12, x13, x14, x15;
4375 934 : int res ATTRIBUTE_UNUSED;
4376 934 : x2 = XEXP (x1, 0);
4377 934 : x3 = XEXP (x2, 0);
4378 934 : x4 = XEXP (x3, 1);
4379 934 : x5 = XVECEXP (x4, 0, 0);
4380 934 : if (x5 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
4381 : return -1;
4382 934 : x6 = XVECEXP (x4, 0, 1);
4383 934 : if (x6 != const_int_rtx[MAX_SAVED_CONST_INT + 2])
4384 : return -1;
4385 934 : x7 = XVECEXP (x4, 0, 2);
4386 934 : if (x7 != const_int_rtx[MAX_SAVED_CONST_INT + 4])
4387 : return -1;
4388 934 : x8 = XVECEXP (x4, 0, 3);
4389 934 : if (x8 != const_int_rtx[MAX_SAVED_CONST_INT + 6])
4390 : return -1;
4391 934 : x9 = XVECEXP (x4, 0, 4);
4392 934 : if (x9 != const_int_rtx[MAX_SAVED_CONST_INT + 8])
4393 : return -1;
4394 934 : x10 = XVECEXP (x4, 0, 5);
4395 934 : if (x10 != const_int_rtx[MAX_SAVED_CONST_INT + 10])
4396 : return -1;
4397 934 : x11 = XVECEXP (x4, 0, 6);
4398 934 : if (x11 != const_int_rtx[MAX_SAVED_CONST_INT + 12])
4399 : return -1;
4400 934 : x12 = XVECEXP (x4, 0, 7);
4401 934 : if (x12 != const_int_rtx[MAX_SAVED_CONST_INT + 14])
4402 : return -1;
4403 934 : x13 = XEXP (x1, 1);
4404 934 : x14 = XEXP (x13, 0);
4405 934 : x15 = XEXP (x14, 1);
4406 934 : return pattern1320 (x15,
4407 934 : 8); /* [-1, 0] */
4408 : }
4409 :
4410 : int
4411 133 : pattern1334 (rtx x1)
4412 : {
4413 133 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4414 133 : rtx x2, x3, x4;
4415 133 : int res ATTRIBUTE_UNUSED;
4416 133 : x2 = XEXP (x1, 0);
4417 133 : x3 = XEXP (x2, 0);
4418 133 : operands[0] = x3;
4419 133 : switch (GET_MODE (operands[0]))
4420 : {
4421 127 : case E_QImode:
4422 127 : x4 = XEXP (x1, 1);
4423 127 : return pattern1333 (x4,
4424 127 : E_QImode); /* [-1, 0] */
4425 :
4426 6 : case E_HImode:
4427 6 : x4 = XEXP (x1, 1);
4428 6 : if (pattern1333 (x4,
4429 : E_HImode) != 0)
4430 : return -1;
4431 : return 1;
4432 :
4433 : default:
4434 : return -1;
4435 : }
4436 : }
4437 :
4438 : int
4439 143815 : pattern1343 (rtx x1, machine_mode i1)
4440 : {
4441 143815 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4442 143815 : int res ATTRIBUTE_UNUSED;
4443 143815 : if (!register_operand (operands[0], i1)
4444 138115 : || GET_MODE (x1) != i1
4445 138115 : || !register_operand (operands[1], i1)
4446 279379 : || !nonmemory_operand (operands[2], E_QImode))
4447 11251 : return -1;
4448 : return 0;
4449 : }
4450 :
4451 : int
4452 2099686 : pattern1349 (rtx x1, machine_mode i1)
4453 : {
4454 2099686 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4455 2099686 : int res ATTRIBUTE_UNUSED;
4456 2099686 : if (!mask_reg_operand (operands[0], i1)
4457 48 : || GET_MODE (x1) != i1
4458 48 : || !mask_reg_operand (operands[1], i1)
4459 2099734 : || !const_int_operand (operands[2], E_VOIDmode))
4460 2099638 : return -1;
4461 : return 0;
4462 : }
4463 :
4464 : int
4465 5162 : pattern1355 (rtx x1, machine_mode i1)
4466 : {
4467 5162 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4468 5162 : rtx x2, x3, x4, x5, x6, x7, x8;
4469 5162 : int res ATTRIBUTE_UNUSED;
4470 5162 : x2 = XVECEXP (x1, 0, 0);
4471 5162 : x3 = XEXP (x2, 1);
4472 5162 : if (GET_MODE (x3) != i1)
4473 : return -1;
4474 4620 : x4 = XVECEXP (x1, 0, 1);
4475 4620 : if (GET_CODE (x4) != CLOBBER)
4476 : return -1;
4477 4620 : x5 = XEXP (x4, 0);
4478 4620 : if (GET_CODE (x5) != REG
4479 4620 : || REGNO (x5) != 17
4480 9240 : || GET_MODE (x5) != E_CCmode)
4481 : return -1;
4482 4620 : x6 = XEXP (x3, 0);
4483 4620 : if (!rtx_equal_p (x6, operands[0]))
4484 : return -1;
4485 4566 : x7 = XEXP (x2, 0);
4486 4566 : if (!rtx_equal_p (x7, operands[0]))
4487 : return -1;
4488 4566 : x8 = PATTERN (peep2_next_insn (2));
4489 4566 : return pattern1354 (x8); /* [-1, 0] */
4490 : }
4491 :
4492 : int
4493 661629 : pattern1365 (rtx x1, machine_mode i1)
4494 : {
4495 661629 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4496 661629 : int res ATTRIBUTE_UNUSED;
4497 661629 : if (!register_operand (operands[0], i1)
4498 656803 : || GET_MODE (x1) != i1
4499 656803 : || !nonimmediate_operand (operands[1], i1)
4500 1302053 : || !const_int_operand (operands[2], i1))
4501 79511 : return -1;
4502 : return 0;
4503 : }
4504 :
4505 : int
4506 474 : pattern1370 (rtx x1, machine_mode i1)
4507 : {
4508 474 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4509 474 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
4510 474 : int res ATTRIBUTE_UNUSED;
4511 474 : if (GET_MODE (x1) != i1)
4512 : return -1;
4513 332 : x2 = XVECEXP (x1, 0, 0);
4514 332 : if (x2 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
4515 : return -1;
4516 332 : x3 = XVECEXP (x1, 0, 1);
4517 332 : if (x3 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
4518 : return -1;
4519 332 : x4 = XVECEXP (x1, 0, 2);
4520 332 : if (x4 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
4521 : return -1;
4522 332 : x5 = XVECEXP (x1, 0, 3);
4523 332 : if (x5 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
4524 : return -1;
4525 332 : x6 = XVECEXP (x1, 0, 4);
4526 332 : if (x6 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
4527 : return -1;
4528 332 : x7 = XVECEXP (x1, 0, 5);
4529 332 : if (x7 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
4530 : return -1;
4531 332 : x8 = XVECEXP (x1, 0, 6);
4532 332 : if (x8 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
4533 : return -1;
4534 332 : x9 = XVECEXP (x1, 0, 7);
4535 332 : if (x9 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
4536 0 : return -1;
4537 : return 0;
4538 : }
4539 :
4540 : int
4541 1814 : pattern1383 (machine_mode i1, machine_mode i2)
4542 : {
4543 1814 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4544 1814 : int res ATTRIBUTE_UNUSED;
4545 1814 : if (!bcst_vector_operand (operands[2], i1)
4546 1808 : || !bcst_vector_operand (operands[3], i1)
4547 1808 : || !const0_operand (operands[4], i1)
4548 3622 : || !register_operand (operands[5], i2))
4549 6 : return -1;
4550 : return 0;
4551 : }
4552 :
4553 : int
4554 499 : pattern1388 (rtx x1, machine_mode i1)
4555 : {
4556 499 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4557 499 : rtx x2;
4558 499 : int res ATTRIBUTE_UNUSED;
4559 499 : if (!register_operand (operands[0], i1)
4560 499 : || GET_MODE (x1) != i1)
4561 : return -1;
4562 479 : x2 = XEXP (x1, 0);
4563 479 : if (GET_MODE (x2) != i1
4564 479 : || !nonimmediate_operand (operands[1], i1)
4565 479 : || !nonimmediate_operand (operands[2], i1)
4566 950 : || !nonimmediate_operand (operands[3], i1))
4567 8 : return -1;
4568 : return 0;
4569 : }
4570 :
4571 : int
4572 279 : pattern1397 (rtx x1, machine_mode i1, machine_mode i2)
4573 : {
4574 279 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4575 279 : rtx x2, x3;
4576 279 : int res ATTRIBUTE_UNUSED;
4577 279 : if (!register_operand (operands[0], i2)
4578 279 : || GET_MODE (x1) != i2)
4579 : return -1;
4580 273 : x2 = XEXP (x1, 0);
4581 273 : if (GET_MODE (x2) != i2)
4582 : return -1;
4583 273 : x3 = XEXP (x2, 0);
4584 273 : if (GET_MODE (x3) != i2
4585 273 : || !nonimmediate_operand (operands[1], i2)
4586 546 : || pattern1385 (
4587 : i1,
4588 : i2) != 0)
4589 0 : return -1;
4590 : return 0;
4591 : }
4592 :
4593 : int
4594 1941 : pattern1406 (rtx x1, machine_mode i1)
4595 : {
4596 1941 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4597 1941 : rtx x2, x3, x4;
4598 1941 : int res ATTRIBUTE_UNUSED;
4599 1941 : if (!register_operand (operands[0], i1)
4600 1941 : || GET_MODE (x1) != i1)
4601 : return -1;
4602 1866 : x2 = XVECEXP (x1, 0, 0);
4603 1866 : if (GET_MODE (x2) != i1)
4604 : return -1;
4605 1866 : x3 = XEXP (x2, 0);
4606 1866 : if (GET_MODE (x3) != i1)
4607 : return -1;
4608 1866 : x4 = XEXP (x3, 0);
4609 1866 : if (GET_MODE (x4) != i1
4610 1866 : || !register_operand (operands[1], i1)
4611 1866 : || !register_operand (operands[2], i1)
4612 3732 : || !nonimm_or_0_operand (operands[4], i1))
4613 0 : return -1;
4614 : return 0;
4615 : }
4616 :
4617 : int
4618 2079 : pattern1416 (rtx x1, machine_mode i1)
4619 : {
4620 2079 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4621 2079 : rtx x2, x3;
4622 2079 : int res ATTRIBUTE_UNUSED;
4623 2079 : if (!register_operand (operands[0], i1)
4624 2079 : || GET_MODE (x1) != i1)
4625 : return -1;
4626 1967 : x2 = XVECEXP (x1, 0, 0);
4627 1967 : if (GET_MODE (x2) != i1)
4628 : return -1;
4629 1967 : x3 = XEXP (x2, 0);
4630 1967 : if (GET_MODE (x3) != i1
4631 1967 : || !register_operand (operands[1], i1)
4632 3841 : || !register_operand (operands[2], i1))
4633 149 : return -1;
4634 : return 0;
4635 : }
4636 :
4637 : int
4638 129782 : pattern1425 (rtx x1, machine_mode i1, machine_mode i2)
4639 : {
4640 129782 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4641 129782 : rtx x2;
4642 129782 : int res ATTRIBUTE_UNUSED;
4643 129782 : if (!register_operand (operands[0], i1)
4644 129782 : || GET_MODE (x1) != i1)
4645 : return -1;
4646 128271 : x2 = XEXP (x1, 0);
4647 128271 : if (GET_MODE (x2) != i2
4648 128153 : || !register_operand (operands[1], i1)
4649 254152 : || !nonimmediate_operand (operands[2], i1))
4650 2999 : return -1;
4651 : return 0;
4652 : }
4653 :
4654 : int
4655 97224 : pattern1429 (rtx x1)
4656 : {
4657 97224 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4658 97224 : rtx x2, x3;
4659 97224 : int res ATTRIBUTE_UNUSED;
4660 97224 : x2 = XEXP (x1, 1);
4661 97224 : if (maybe_ne (SUBREG_BYTE (x2), 0)
4662 97224 : || GET_MODE (x2) != E_QImode)
4663 : return -1;
4664 97224 : x3 = XEXP (x2, 0);
4665 97224 : if (GET_CODE (x3) != AND)
4666 : return -1;
4667 12196 : return pattern819 (x1); /* [-1, 1] */
4668 : }
4669 :
4670 : int
4671 12 : pattern1435 (rtx x1)
4672 : {
4673 12 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4674 12 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
4675 12 : rtx x10, x11, x12;
4676 12 : int res ATTRIBUTE_UNUSED;
4677 12 : x2 = XVECEXP (x1, 0, 1);
4678 12 : x3 = XEXP (x2, 1);
4679 12 : x4 = XEXP (x3, 0);
4680 12 : if (!rtx_equal_p (x4, operands[2]))
4681 : return -1;
4682 12 : x5 = XVECEXP (x1, 0, 0);
4683 12 : x6 = XEXP (x5, 1);
4684 12 : x7 = XEXP (x6, 0);
4685 12 : x8 = XEXP (x7, 0);
4686 12 : x9 = XEXP (x8, 0);
4687 12 : operands[3] = x9;
4688 12 : if (!flags_reg_operand (operands[3], E_VOIDmode))
4689 : return -1;
4690 12 : x10 = XEXP (x7, 1);
4691 12 : operands[1] = x10;
4692 12 : x11 = XEXP (x2, 0);
4693 12 : operands[0] = x11;
4694 12 : x12 = XEXP (x3, 1);
4695 12 : if (!rtx_equal_p (x12, operands[1]))
4696 : return -1;
4697 12 : switch (GET_MODE (x7))
4698 : {
4699 : case E_QImode:
4700 : return 0;
4701 :
4702 : case E_HImode:
4703 : return 1;
4704 :
4705 : case E_SImode:
4706 : return 2;
4707 :
4708 : case E_DImode:
4709 : return 3;
4710 :
4711 : default:
4712 : return -1;
4713 : }
4714 : }
4715 :
4716 : int
4717 146330 : pattern1452 (rtx x1, machine_mode i1)
4718 : {
4719 146330 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4720 146330 : rtx x2, x3, x4, x5, x6, x7;
4721 146330 : int res ATTRIBUTE_UNUSED;
4722 146330 : if (!register_operand (operands[2], i1)
4723 146330 : || !register_operand (operands[0], i1))
4724 0 : return -1;
4725 146330 : x2 = XVECEXP (x1, 0, 1);
4726 146330 : x3 = XEXP (x2, 1);
4727 146330 : if (GET_MODE (x3) != i1)
4728 : return -1;
4729 146330 : x4 = XEXP (x3, 0);
4730 146330 : if (GET_MODE (x4) != i1
4731 146330 : || !register_operand (operands[5], i1)
4732 146307 : || !register_operand (operands[3], i1)
4733 289627 : || !register_operand (operands[1], i1))
4734 3033 : return -1;
4735 143297 : x5 = XVECEXP (x1, 0, 2);
4736 143297 : x6 = XEXP (x5, 1);
4737 143297 : if (GET_MODE (x6) != i1)
4738 : return -1;
4739 143297 : x7 = XEXP (x6, 0);
4740 143297 : if (GET_MODE (x7) != i1
4741 143297 : || !register_operand (operands[4], i1))
4742 11248 : return -1;
4743 : return 0;
4744 : }
4745 :
4746 : int
4747 678 : pattern1466 (rtx x1, machine_mode i1, machine_mode i2, machine_mode i3)
4748 : {
4749 678 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4750 678 : rtx x2, x3;
4751 678 : int res ATTRIBUTE_UNUSED;
4752 678 : if (!register_operand (operands[0], i1)
4753 678 : || GET_MODE (x1) != i1)
4754 : return -1;
4755 647 : x2 = XEXP (x1, 0);
4756 647 : if (GET_MODE (x2) != i1
4757 647 : || !register_operand (operands[2], i2)
4758 647 : || !register_operand (operands[1], i1)
4759 1265 : || !nonimmediate_operand (operands[3], i1))
4760 29 : return -1;
4761 618 : x3 = XEXP (x1, 1);
4762 618 : if (GET_MODE (x3) != i1
4763 618 : || !register_operand (operands[4], i3))
4764 36 : return -1;
4765 : return 0;
4766 : }
4767 :
4768 : int
4769 1883 : pattern1475 (rtx x1, machine_mode i1, machine_mode i2)
4770 : {
4771 1883 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4772 1883 : rtx x2;
4773 1883 : int res ATTRIBUTE_UNUSED;
4774 1883 : if (!register_operand (operands[0], i1)
4775 1706 : || GET_MODE (x1) != i1
4776 1706 : || !vector_operand (operands[1], i1)
4777 3587 : || !vector_operand (operands[2], i1))
4778 1082 : return -1;
4779 801 : x2 = XEXP (x1, 2);
4780 801 : if (GET_MODE (x2) != i2
4781 801 : || !register_operand (operands[3], i1)
4782 570 : || !const0_operand (operands[4], i1)
4783 926 : || !const_0_to_7_operand (operands[5], E_SImode))
4784 676 : return -1;
4785 : return 0;
4786 : }
4787 :
4788 : int
4789 1094 : pattern1484 (rtx x1, machine_mode i1, machine_mode i2)
4790 : {
4791 1094 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4792 1094 : rtx x2, x3, x4, x5;
4793 1094 : int res ATTRIBUTE_UNUSED;
4794 1094 : if (!register_operand (operands[0], i2)
4795 1094 : || GET_MODE (x1) != i2)
4796 : return -1;
4797 1067 : x2 = XVECEXP (x1, 0, 0);
4798 1067 : if (GET_MODE (x2) != i2)
4799 : return -1;
4800 1067 : x3 = XEXP (x2, 0);
4801 1067 : if (GET_MODE (x3) != i2)
4802 : return -1;
4803 1067 : x4 = XEXP (x3, 0);
4804 1067 : if (GET_MODE (x4) != i2)
4805 : return -1;
4806 1067 : x5 = XEXP (x4, 0);
4807 1067 : if (GET_MODE (x5) != i1)
4808 0 : return -1;
4809 : return 0;
4810 : }
4811 :
4812 : int
4813 295 : pattern1491 (rtx x1, machine_mode i1, machine_mode i2, machine_mode i3)
4814 : {
4815 295 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4816 295 : rtx x2, x3, x4;
4817 295 : int res ATTRIBUTE_UNUSED;
4818 295 : if (!nonimmediate_operand (operands[0], i3)
4819 295 : || GET_MODE (x1) != i3)
4820 : return -1;
4821 295 : x2 = XEXP (x1, 0);
4822 295 : if (GET_MODE (x2) != i1
4823 295 : || !nonimmediate_operand (operands[1], i2))
4824 0 : return -1;
4825 295 : x3 = XEXP (x2, 1);
4826 295 : if (GET_MODE (x3) != i2)
4827 : return -1;
4828 295 : x4 = XEXP (x1, 1);
4829 295 : if (GET_MODE (x4) != i1)
4830 : return -1;
4831 : return 0;
4832 : }
4833 :
4834 : int
4835 158437 : pattern1498 (rtx x1)
4836 : {
4837 158437 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4838 158437 : rtx x2, x3, x4, x5, x6, x7, x8;
4839 158437 : int res ATTRIBUTE_UNUSED;
4840 158437 : x2 = XVECEXP (x1, 0, 1);
4841 158437 : x3 = XEXP (x2, 1);
4842 158437 : x4 = XEXP (x3, 0);
4843 158437 : if (!rtx_equal_p (x4, operands[1]))
4844 : return -1;
4845 157083 : x5 = XEXP (x3, 1);
4846 157083 : if (!rtx_equal_p (x5, operands[2]))
4847 : return -1;
4848 157083 : x6 = XVECEXP (x1, 0, 0);
4849 157083 : x7 = XEXP (x6, 1);
4850 157083 : x8 = XEXP (x7, 0);
4851 157083 : switch (GET_MODE (x8))
4852 : {
4853 687 : case E_QImode:
4854 687 : return pattern1438 (x3,
4855 687 : E_QImode); /* [-1, 0] */
4856 :
4857 6065 : case E_HImode:
4858 6065 : if (pattern1438 (x3,
4859 : E_HImode) != 0)
4860 : return -1;
4861 : return 1;
4862 :
4863 42619 : case E_SImode:
4864 42619 : if (pattern1439 (x3,
4865 : E_SImode) != 0)
4866 : return -1;
4867 : return 2;
4868 :
4869 107694 : case E_DImode:
4870 107694 : if (pattern1439 (x3,
4871 : E_DImode) != 0)
4872 : return -1;
4873 : return 3;
4874 :
4875 : default:
4876 : return -1;
4877 : }
4878 : }
4879 :
4880 : int
4881 27926 : pattern1515 (rtx x1, machine_mode i1)
4882 : {
4883 27926 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4884 27926 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
4885 27926 : rtx x10;
4886 27926 : int res ATTRIBUTE_UNUSED;
4887 27926 : x2 = PATTERN (peep2_next_insn (2));
4888 27926 : x3 = XEXP (x2, 1);
4889 27926 : if (!rtx_equal_p (x3, operands[0]))
4890 : return -1;
4891 7017 : x4 = XVECEXP (x1, 0, 0);
4892 7017 : x5 = XEXP (x4, 1);
4893 7017 : switch (GET_CODE (x5))
4894 : {
4895 2022 : case COMPARE:
4896 2022 : x6 = XEXP (x4, 0);
4897 2022 : if (GET_CODE (x6) != REG
4898 2022 : || REGNO (x6) != 17)
4899 : return -1;
4900 2022 : x7 = XVECEXP (x1, 0, 1);
4901 2022 : if (GET_CODE (x7) != SET)
4902 : return -1;
4903 2022 : x8 = XEXP (x7, 1);
4904 2022 : if (GET_MODE (x8) != i1)
4905 : return -1;
4906 1995 : x9 = XEXP (x7, 0);
4907 1995 : if (!rtx_equal_p (x9, operands[0]))
4908 : return -1;
4909 1995 : x10 = XEXP (x5, 0);
4910 1995 : switch (GET_CODE (x10))
4911 : {
4912 0 : case REG:
4913 0 : return pattern1199 (x1,
4914 0 : i1); /* [-1, 0] */
4915 :
4916 0 : case SUBREG:
4917 0 : case MEM:
4918 0 : if (pattern1200 (x1,
4919 : i1) != 0)
4920 : return -1;
4921 : return 1;
4922 :
4923 1941 : case PLUS:
4924 1941 : if (pattern1201 (x1,
4925 : i1) != 0)
4926 : return -1;
4927 : return 2;
4928 :
4929 : default:
4930 : return -1;
4931 : }
4932 :
4933 1223 : case PLUS:
4934 1223 : res = pattern1203 (x1,
4935 : i1);
4936 1223 : if (res >= 0)
4937 0 : return res + 3; /* [3, 4] */
4938 : return -1;
4939 :
4940 90 : case MINUS:
4941 90 : res = pattern1204 (x1,
4942 : i1);
4943 90 : if (res >= 0)
4944 0 : return res + 5; /* [5, 6] */
4945 : return -1;
4946 :
4947 : default:
4948 : return -1;
4949 : }
4950 : }
4951 :
4952 : int
4953 25968 : pattern1535 (rtx x1)
4954 : {
4955 25968 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4956 25968 : rtx x2, x3, x4, x5;
4957 25968 : int res ATTRIBUTE_UNUSED;
4958 25968 : if (!int248_register_operand (operands[2], E_VOIDmode))
4959 : return -1;
4960 24458 : x2 = XEXP (x1, 1);
4961 24458 : x3 = XEXP (x2, 1);
4962 24458 : operands[1] = x3;
4963 24458 : if (!nonimmediate_operand (operands[1], E_QImode))
4964 : return -1;
4965 11127 : x4 = XEXP (x1, 0);
4966 11127 : switch (GET_CODE (x4))
4967 : {
4968 35 : case STRICT_LOW_PART:
4969 35 : x5 = XEXP (x4, 0);
4970 35 : operands[0] = x5;
4971 35 : if (!register_operand (operands[0], E_QImode))
4972 : return -1;
4973 35 : return pattern1534 (); /* [-1, 2] */
4974 :
4975 11092 : case REG:
4976 11092 : case SUBREG:
4977 11092 : case MEM:
4978 11092 : operands[0] = x4;
4979 11092 : if (!nonimmediate_operand (operands[0], E_QImode))
4980 : return -1;
4981 11092 : res = pattern1534 ();
4982 11092 : if (res >= 0)
4983 438 : return res + 3; /* [3, 5] */
4984 : return -1;
4985 :
4986 : default:
4987 : return -1;
4988 : }
4989 : }
4990 :
4991 : int
4992 757 : pattern1551 (rtx x1, machine_mode i1)
4993 : {
4994 757 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4995 757 : rtx x2, x3;
4996 757 : int res ATTRIBUTE_UNUSED;
4997 757 : if (!register_operand (operands[0], i1)
4998 757 : || GET_MODE (x1) != i1)
4999 : return -1;
5000 739 : x2 = XEXP (x1, 0);
5001 739 : if (GET_MODE (x2) != i1)
5002 : return -1;
5003 739 : x3 = XEXP (x2, 0);
5004 739 : if (GET_MODE (x3) != i1
5005 739 : || !nonimmediate_operand (operands[2], i1)
5006 739 : || !nonimm_or_0_operand (operands[4], i1)
5007 1478 : || !register_operand (operands[1], i1))
5008 0 : return -1;
5009 : return 0;
5010 : }
5011 :
5012 : int
5013 1279 : pattern1559 (rtx x1, machine_mode i1, machine_mode i2, machine_mode i3)
5014 : {
5015 1279 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5016 1279 : rtx x2, x3, x4, x5, x6, x7;
5017 1279 : int res ATTRIBUTE_UNUSED;
5018 1279 : if (!register_operand (operands[0], i2)
5019 1279 : || GET_MODE (x1) != i2)
5020 : return -1;
5021 1238 : x2 = XEXP (x1, 0);
5022 1238 : if (GET_MODE (x2) != i2)
5023 : return -1;
5024 1238 : x3 = XEXP (x2, 0);
5025 1238 : if (GET_MODE (x3) != i3)
5026 : return -1;
5027 1238 : x4 = XEXP (x3, 0);
5028 1238 : if (GET_MODE (x4) != i3)
5029 : return -1;
5030 1238 : x5 = XEXP (x4, 0);
5031 1238 : if (GET_MODE (x5) != i3)
5032 : return -1;
5033 1238 : x6 = XEXP (x5, 0);
5034 1238 : if (GET_MODE (x6) != i3
5035 1238 : || !vector_operand (operands[1], i2))
5036 0 : return -1;
5037 1238 : x7 = XEXP (x5, 1);
5038 1238 : if (GET_MODE (x7) != i3
5039 1238 : || !vector_operand (operands[2], i2)
5040 1238 : || !const1_operand (operands[5], i3)
5041 1238 : || !nonimm_or_0_operand (operands[3], i2)
5042 2445 : || !register_operand (operands[4], i1))
5043 110 : return -1;
5044 : return 0;
5045 : }
5046 :
5047 : int
5048 160938 : pattern1574 (rtx x1)
5049 : {
5050 160938 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5051 160938 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
5052 160938 : rtx x10, x11, x12, x13, x14, x15, x16;
5053 160938 : int res ATTRIBUTE_UNUSED;
5054 160938 : x2 = XVECEXP (x1, 0, 0);
5055 160938 : x3 = XEXP (x2, 1);
5056 160938 : x4 = XEXP (x3, 0);
5057 160938 : x5 = XEXP (x4, 0);
5058 160938 : x6 = XEXP (x5, 0);
5059 160938 : operands[1] = x6;
5060 160938 : x7 = XEXP (x3, 1);
5061 160938 : x8 = XEXP (x7, 0);
5062 160938 : x9 = XEXP (x8, 0);
5063 160938 : if (!rtx_equal_p (x9, operands[1]))
5064 : return -1;
5065 156086 : x10 = XVECEXP (x1, 0, 1);
5066 156086 : x11 = XEXP (x10, 1);
5067 156086 : x12 = XEXP (x11, 0);
5068 156086 : if (!rtx_equal_p (x12, operands[1]))
5069 : return -1;
5070 152908 : x13 = XEXP (x4, 1);
5071 152908 : switch (GET_CODE (x13))
5072 : {
5073 90398 : case SIGN_EXTEND:
5074 90398 : x14 = XEXP (x13, 0);
5075 90398 : operands[2] = x14;
5076 90398 : x15 = XEXP (x8, 1);
5077 90398 : if (!rtx_equal_p (x15, operands[2]))
5078 : return -1;
5079 90361 : x16 = XEXP (x11, 1);
5080 90361 : if (!rtx_equal_p (x16, operands[2]))
5081 : return -1;
5082 90114 : switch (GET_MODE (x4))
5083 : {
5084 5149 : case E_HImode:
5085 5149 : return pattern1572 (x1,
5086 : E_QImode,
5087 5149 : E_HImode); /* [-1, 0] */
5088 :
5089 6042 : case E_SImode:
5090 6042 : if (pattern1572 (x1,
5091 : E_HImode,
5092 : E_SImode) != 0)
5093 : return -1;
5094 : return 1;
5095 :
5096 23073 : case E_DImode:
5097 23073 : if (GET_MODE (x5) != E_DImode
5098 23073 : || !nonimmediate_operand (operands[1], E_SImode)
5099 22672 : || GET_MODE (x13) != E_DImode
5100 22672 : || !x86_64_sext_operand (operands[2], E_SImode)
5101 45450 : || pattern725 (x1,
5102 : E_SImode,
5103 : E_DImode) != 0)
5104 696 : return -1;
5105 : return 2;
5106 :
5107 38591 : case E_TImode:
5108 38591 : if (GET_MODE (x5) != E_TImode
5109 38591 : || !nonimmediate_operand (operands[1], E_DImode)
5110 38239 : || GET_MODE (x13) != E_TImode
5111 76830 : || pattern725 (x1,
5112 : E_DImode,
5113 : E_TImode) != 0)
5114 352 : return -1;
5115 : return 3;
5116 :
5117 17259 : case E_POImode:
5118 17259 : if (pattern726 (x1,
5119 : E_TImode,
5120 : E_POImode) != 0)
5121 : return -1;
5122 : return 4;
5123 :
5124 : default:
5125 : return -1;
5126 : }
5127 :
5128 61514 : case CONST_INT:
5129 61514 : case CONST_WIDE_INT:
5130 61514 : operands[3] = x13;
5131 61514 : x15 = XEXP (x8, 1);
5132 61514 : operands[2] = x15;
5133 61514 : x16 = XEXP (x11, 1);
5134 61514 : if (!rtx_equal_p (x16, operands[2]))
5135 : return -1;
5136 61148 : switch (GET_MODE (x4))
5137 : {
5138 5936 : case E_HImode:
5139 5936 : if (pattern1573 (x1,
5140 : E_QImode,
5141 : E_HImode) != 0)
5142 : return -1;
5143 : return 5;
5144 :
5145 5928 : case E_SImode:
5146 5928 : if (pattern1573 (x1,
5147 : E_HImode,
5148 : E_SImode) != 0)
5149 : return -1;
5150 : return 6;
5151 :
5152 12323 : case E_DImode:
5153 12323 : if (pattern1573 (x1,
5154 : E_SImode,
5155 : E_DImode) != 0)
5156 : return -1;
5157 : return 7;
5158 :
5159 24311 : case E_TImode:
5160 24311 : if (GET_MODE (x5) != E_TImode
5161 24311 : || !nonimmediate_operand (operands[1], E_DImode)
5162 48622 : || pattern725 (x1,
5163 : E_DImode,
5164 : E_TImode) != 0)
5165 0 : return -1;
5166 : return 8;
5167 :
5168 12650 : case E_POImode:
5169 12650 : if (pattern727 (x1,
5170 : E_TImode,
5171 : E_POImode) != 0)
5172 : return -1;
5173 : return 9;
5174 :
5175 : default:
5176 : return -1;
5177 : }
5178 :
5179 : default:
5180 : return -1;
5181 : }
5182 : }
5183 :
5184 : int
5185 638 : pattern1620 (rtx x1, machine_mode i1)
5186 : {
5187 638 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5188 638 : rtx x2, x3, x4;
5189 638 : int res ATTRIBUTE_UNUSED;
5190 638 : if (!vsib_mem_operator (operands[5], i1)
5191 638 : || !register_operand (operands[6], E_QImode))
5192 220 : return -1;
5193 418 : x2 = XEXP (x1, 1);
5194 418 : if (GET_MODE (x2) != i1
5195 418 : || !register_operand (operands[3], i1))
5196 74 : return -1;
5197 344 : x3 = XEXP (x1, 0);
5198 344 : x4 = XEXP (x3, 0);
5199 344 : switch (GET_MODE (x4))
5200 : {
5201 0 : case E_SImode:
5202 0 : return pattern1619 (
5203 0 : E_SImode); /* [-1, 1] */
5204 :
5205 344 : case E_DImode:
5206 344 : res = pattern1619 (
5207 : E_DImode);
5208 344 : if (res >= 0)
5209 204 : return res + 2; /* [2, 3] */
5210 : return -1;
5211 :
5212 : default:
5213 : return -1;
5214 : }
5215 : }
5216 :
5217 : int
5218 184 : pattern1633 (rtx x1, int i1, int i2, int i3, int i4)
5219 : {
5220 184 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5221 184 : rtx x2, x3, x4, x5;
5222 184 : int res ATTRIBUTE_UNUSED;
5223 184 : if (XVECLEN (x1, 0) != 4)
5224 : return -1;
5225 184 : x2 = XVECEXP (x1, 0, 0);
5226 184 : if (x2 != const_int_rtx[MAX_SAVED_CONST_INT + i4])
5227 : return -1;
5228 184 : x3 = XVECEXP (x1, 0, 1);
5229 184 : if (x3 != const_int_rtx[MAX_SAVED_CONST_INT + i3])
5230 : return -1;
5231 184 : x4 = XVECEXP (x1, 0, 2);
5232 184 : if (x4 != const_int_rtx[MAX_SAVED_CONST_INT + i2])
5233 : return -1;
5234 184 : x5 = XVECEXP (x1, 0, 3);
5235 184 : if (x5 != const_int_rtx[MAX_SAVED_CONST_INT + i1])
5236 0 : return -1;
5237 : return 0;
5238 : }
5239 :
5240 : int
5241 1 : pattern1643 (rtx x1, machine_mode i1)
5242 : {
5243 1 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5244 1 : rtx x2;
5245 1 : int res ATTRIBUTE_UNUSED;
5246 1 : if (!register_operand (operands[0], i1)
5247 1 : || GET_MODE (x1) != i1)
5248 : return -1;
5249 1 : x2 = XEXP (x1, 0);
5250 1 : if (GET_MODE (x2) != i1
5251 1 : || !nonimmediate_operand (operands[1], i1)
5252 2 : || !register_operand (operands[2], i1))
5253 0 : return -1;
5254 : return 0;
5255 : }
5256 :
5257 : int
5258 8 : pattern1653 (rtx x1, machine_mode i1)
5259 : {
5260 8 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5261 8 : rtx x2, x3, x4, x5;
5262 8 : int res ATTRIBUTE_UNUSED;
5263 8 : if (!register_operand (operands[0], i1)
5264 8 : || GET_MODE (x1) != i1)
5265 : return -1;
5266 8 : x2 = XEXP (x1, 0);
5267 8 : if (GET_MODE (x2) != i1)
5268 : return -1;
5269 8 : x3 = XVECEXP (x2, 0, 2);
5270 8 : if (GET_MODE (x3) != i1)
5271 : return -1;
5272 8 : x4 = XEXP (x1, 1);
5273 8 : if (GET_MODE (x4) != i1)
5274 : return -1;
5275 8 : x5 = XEXP (x4, 0);
5276 8 : if (GET_MODE (x5) != i1)
5277 0 : return -1;
5278 : return 0;
5279 : }
5280 :
5281 : int
5282 453 : pattern1660 (rtx x1, machine_mode i1, machine_mode i2, machine_mode i3)
5283 : {
5284 453 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5285 453 : rtx x2, x3, x4, x5, x6, x7, x8;
5286 453 : int res ATTRIBUTE_UNUSED;
5287 453 : if (!register_operand (operands[0], i2)
5288 453 : || GET_MODE (x1) != i2)
5289 : return -1;
5290 437 : x2 = XEXP (x1, 0);
5291 437 : if (GET_MODE (x2) != i2)
5292 : return -1;
5293 437 : x3 = XEXP (x2, 0);
5294 437 : if (GET_MODE (x3) != i3)
5295 : return -1;
5296 437 : x4 = XEXP (x3, 0);
5297 437 : if (GET_MODE (x4) != i3)
5298 : return -1;
5299 437 : x5 = XEXP (x4, 0);
5300 437 : if (GET_MODE (x5) != i3)
5301 : return -1;
5302 437 : x6 = XEXP (x5, 0);
5303 437 : if (GET_MODE (x6) != i3)
5304 : return -1;
5305 437 : x7 = XEXP (x6, 0);
5306 437 : if (GET_MODE (x7) != i3
5307 437 : || !vector_operand (operands[1], i2))
5308 0 : return -1;
5309 437 : x8 = XEXP (x6, 1);
5310 437 : if (GET_MODE (x8) != i3
5311 437 : || !vector_operand (operands[2], i2)
5312 437 : || !const1_operand (operands[3], i2)
5313 437 : || !nonimm_or_0_operand (operands[4], i2)
5314 859 : || !register_operand (operands[5], i1))
5315 61 : return -1;
5316 : return 0;
5317 : }
5318 :
5319 : int
5320 323 : pattern1675 (machine_mode i1)
5321 : {
5322 323 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5323 323 : int res ATTRIBUTE_UNUSED;
5324 323 : if (!vsib_address_operand (operands[4], i1))
5325 : return -1;
5326 323 : switch (GET_MODE (operands[3]))
5327 : {
5328 154 : case E_V4SImode:
5329 154 : if (!register_operand (operands[3], E_V4SImode))
5330 : return -1;
5331 : return 0;
5332 :
5333 169 : case E_V2DImode:
5334 169 : if (!register_operand (operands[3], E_V2DImode))
5335 : return -1;
5336 : return 1;
5337 :
5338 : default:
5339 : return -1;
5340 : }
5341 : }
5342 :
5343 : int
5344 0 : pattern1683 (rtx x1, machine_mode i1, machine_mode i2)
5345 : {
5346 0 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5347 0 : rtx x2, x3;
5348 0 : int res ATTRIBUTE_UNUSED;
5349 0 : if (!register_operand (operands[0], i1)
5350 0 : || !addsub_vs_operator (operands[7], i1)
5351 0 : || GET_MODE (x1) != i2)
5352 0 : return -1;
5353 0 : x2 = XEXP (x1, 0);
5354 0 : if (GET_MODE (x2) != i1
5355 0 : || !register_operand (operands[1], i1)
5356 0 : || !vector_operand (operands[2], i1))
5357 0 : return -1;
5358 0 : x3 = XEXP (x1, 1);
5359 0 : if (GET_MODE (x3) != i1
5360 0 : || !vector_operand (operands[3], i1)
5361 0 : || !vector_operand (operands[4], i1))
5362 0 : return -1;
5363 : return 0;
5364 : }
5365 :
5366 : int
5367 29216 : pattern1695 ()
5368 : {
5369 29216 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5370 29216 : int res ATTRIBUTE_UNUSED;
5371 29216 : if (!const_0_to_7_operand (operands[4], E_VOIDmode)
5372 21344 : || !const_0_to_7_operand (operands[5], E_VOIDmode)
5373 14462 : || !const_0_to_7_operand (operands[6], E_VOIDmode)
5374 14422 : || !const_8_to_15_operand (operands[7], E_VOIDmode)
5375 7541 : || !const_8_to_15_operand (operands[8], E_VOIDmode)
5376 7541 : || !const_8_to_15_operand (operands[9], E_VOIDmode)
5377 36757 : || !const_8_to_15_operand (operands[10], E_VOIDmode))
5378 21675 : return -1;
5379 : return 0;
5380 : }
5381 :
5382 : int
5383 11 : pattern1705 (rtx x1, machine_mode i1)
5384 : {
5385 11 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5386 11 : int res ATTRIBUTE_UNUSED;
5387 11 : if (!nonimmediate_operand (operands[1], i1)
5388 11 : || !register_operand (operands[0], i1)
5389 11 : || GET_MODE (x1) != i1
5390 22 : || !register_operand (operands[2], i1))
5391 0 : return -1;
5392 : return 0;
5393 : }
5394 :
5395 : int
5396 18 : pattern1710 (rtx x1, machine_mode i1)
5397 : {
5398 18 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5399 18 : rtx x2;
5400 18 : int res ATTRIBUTE_UNUSED;
5401 18 : if (!bt_comparison_operator (operands[3], i1))
5402 : return -1;
5403 18 : x2 = XVECEXP (x1, 0, 0);
5404 18 : switch (GET_MODE (x2))
5405 : {
5406 0 : case E_V16QImode:
5407 0 : return pattern1709 (x1,
5408 0 : E_V16QImode); /* [-1, 0] */
5409 :
5410 0 : case E_V8HImode:
5411 0 : if (pattern1709 (x1,
5412 : E_V8HImode) != 0)
5413 : return -1;
5414 : return 1;
5415 :
5416 0 : case E_V4SImode:
5417 0 : if (pattern1709 (x1,
5418 : E_V4SImode) != 0)
5419 : return -1;
5420 : return 2;
5421 :
5422 8 : case E_V2DImode:
5423 8 : if (pattern1709 (x1,
5424 : E_V2DImode) != 0)
5425 : return -1;
5426 : return 3;
5427 :
5428 0 : case E_V1TImode:
5429 0 : if (pattern1709 (x1,
5430 : E_V1TImode) != 0)
5431 : return -1;
5432 : return 4;
5433 :
5434 0 : case E_V4SFmode:
5435 0 : if (pattern1709 (x1,
5436 : E_V4SFmode) != 0)
5437 : return -1;
5438 : return 5;
5439 :
5440 0 : case E_V2DFmode:
5441 0 : if (pattern1709 (x1,
5442 : E_V2DFmode) != 0)
5443 : return -1;
5444 : return 6;
5445 :
5446 0 : case E_V32QImode:
5447 0 : if (pattern1709 (x1,
5448 : E_V32QImode) != 0)
5449 : return -1;
5450 : return 7;
5451 :
5452 0 : case E_V16HImode:
5453 0 : if (pattern1709 (x1,
5454 : E_V16HImode) != 0)
5455 : return -1;
5456 : return 8;
5457 :
5458 0 : case E_V8SImode:
5459 0 : if (pattern1709 (x1,
5460 : E_V8SImode) != 0)
5461 : return -1;
5462 : return 9;
5463 :
5464 10 : case E_V4DImode:
5465 10 : if (pattern1709 (x1,
5466 : E_V4DImode) != 0)
5467 : return -1;
5468 : return 10;
5469 :
5470 0 : case E_V2TImode:
5471 0 : if (pattern1709 (x1,
5472 : E_V2TImode) != 0)
5473 : return -1;
5474 : return 11;
5475 :
5476 0 : case E_V8SFmode:
5477 0 : if (pattern1709 (x1,
5478 : E_V8SFmode) != 0)
5479 : return -1;
5480 : return 12;
5481 :
5482 0 : case E_V4DFmode:
5483 0 : if (pattern1709 (x1,
5484 : E_V4DFmode) != 0)
5485 : return -1;
5486 : return 13;
5487 :
5488 : default:
5489 : return -1;
5490 : }
5491 : }
5492 :
5493 : int
5494 1405 : pattern1737 (rtx x1, machine_mode i1, machine_mode i2)
5495 : {
5496 1405 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5497 1405 : rtx x2, x3;
5498 1405 : int res ATTRIBUTE_UNUSED;
5499 1405 : if (!register_operand (operands[0], i2)
5500 1385 : || GET_MODE (x1) != i2
5501 2790 : || !vsib_mem_operator (operands[5], i1))
5502 20 : return -1;
5503 1385 : switch (GET_MODE (operands[6]))
5504 : {
5505 343 : case E_HImode:
5506 343 : x2 = XVECEXP (x1, 0, 2);
5507 343 : x3 = XEXP (x2, 0);
5508 343 : return pattern1736 (x3,
5509 : E_HImode,
5510 343 : E_V16SImode); /* [-1, 1] */
5511 :
5512 486 : case E_QImode:
5513 486 : x2 = XVECEXP (x1, 0, 2);
5514 486 : x3 = XEXP (x2, 0);
5515 486 : res = pattern1736 (x3,
5516 : E_QImode,
5517 : E_V8DImode);
5518 486 : if (res >= 0)
5519 456 : return res + 2; /* [2, 3] */
5520 : return -1;
5521 :
5522 : default:
5523 : return -1;
5524 : }
5525 : }
5526 :
5527 : int
5528 2913 : pattern1748 (rtx x1)
5529 : {
5530 2913 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5531 2913 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
5532 2913 : rtx x10, x11, x12, x13, x14, x15, x16, x17;
5533 2913 : rtx x18, x19, x20, x21, x22, x23;
5534 2913 : int res ATTRIBUTE_UNUSED;
5535 2913 : if (!register_operand (operands[0], E_SImode))
5536 : return -1;
5537 2909 : x2 = XVECEXP (x1, 0, 0);
5538 2909 : x3 = XEXP (x2, 1);
5539 2909 : x4 = XVECEXP (x3, 0, 0);
5540 2909 : operands[2] = x4;
5541 2909 : if (!register_operand (operands[2], E_V16QImode))
5542 : return -1;
5543 2883 : x5 = XVECEXP (x3, 0, 1);
5544 2883 : operands[3] = x5;
5545 2883 : if (!register_operand (operands[3], E_SImode))
5546 : return -1;
5547 2875 : x6 = XVECEXP (x3, 0, 2);
5548 2875 : operands[4] = x6;
5549 2875 : if (!nonimmediate_operand (operands[4], E_V16QImode))
5550 : return -1;
5551 2875 : x7 = XVECEXP (x3, 0, 3);
5552 2875 : operands[5] = x7;
5553 2875 : if (!register_operand (operands[5], E_SImode))
5554 : return -1;
5555 2875 : x8 = XVECEXP (x3, 0, 4);
5556 2875 : operands[6] = x8;
5557 2875 : if (!const_0_to_255_operand (operands[6], E_SImode))
5558 : return -1;
5559 2875 : x9 = XVECEXP (x1, 0, 1);
5560 2875 : x10 = XEXP (x9, 0);
5561 2875 : operands[1] = x10;
5562 2875 : if (!register_operand (operands[1], E_V16QImode))
5563 : return -1;
5564 2835 : x11 = XEXP (x9, 1);
5565 2835 : x12 = XVECEXP (x11, 0, 0);
5566 2835 : if (!rtx_equal_p (x12, operands[2]))
5567 : return -1;
5568 2835 : x13 = XVECEXP (x11, 0, 1);
5569 2835 : if (!rtx_equal_p (x13, operands[3]))
5570 : return -1;
5571 2835 : x14 = XVECEXP (x11, 0, 2);
5572 2835 : if (!rtx_equal_p (x14, operands[4]))
5573 : return -1;
5574 2835 : x15 = XVECEXP (x11, 0, 3);
5575 2835 : if (!rtx_equal_p (x15, operands[5]))
5576 : return -1;
5577 2835 : x16 = XVECEXP (x11, 0, 4);
5578 2835 : if (!rtx_equal_p (x16, operands[6]))
5579 : return -1;
5580 2835 : x17 = XVECEXP (x1, 0, 2);
5581 2835 : x18 = XEXP (x17, 1);
5582 2835 : x19 = XVECEXP (x18, 0, 0);
5583 2835 : if (!rtx_equal_p (x19, operands[2]))
5584 : return -1;
5585 2755 : x20 = XVECEXP (x18, 0, 1);
5586 2755 : if (!rtx_equal_p (x20, operands[3]))
5587 : return -1;
5588 2675 : x21 = XVECEXP (x18, 0, 2);
5589 2675 : if (!rtx_equal_p (x21, operands[4]))
5590 : return -1;
5591 2595 : x22 = XVECEXP (x18, 0, 3);
5592 2595 : if (!rtx_equal_p (x22, operands[5]))
5593 : return -1;
5594 2515 : x23 = XVECEXP (x18, 0, 4);
5595 2515 : if (!rtx_equal_p (x23, operands[6]))
5596 : return -1;
5597 : return 0;
5598 : }
5599 :
5600 : int
5601 1103 : pattern1778 (rtx x1, machine_mode i1, machine_mode i2)
5602 : {
5603 1103 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5604 1103 : rtx x2, x3;
5605 1103 : int res ATTRIBUTE_UNUSED;
5606 1103 : if (!register_operand (operands[0], i1)
5607 1103 : || GET_MODE (x1) != i1)
5608 : return -1;
5609 965 : x2 = XEXP (x1, 0);
5610 965 : if (GET_MODE (x2) != i1)
5611 : return -1;
5612 965 : x3 = XEXP (x2, 0);
5613 965 : if (GET_MODE (x3) != i2
5614 965 : || !register_operand (operands[1], i1)
5615 962 : || !nonimmediate_operand (operands[2], i1)
5616 1811 : || !nonimm_or_0_operand (operands[11], i1))
5617 173 : return -1;
5618 : return 0;
5619 : }
5620 :
5621 : int
5622 0 : pattern1787 (rtx x1, machine_mode i1)
5623 : {
5624 0 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5625 0 : rtx x2;
5626 0 : int res ATTRIBUTE_UNUSED;
5627 0 : if (!register_operand (operands[0], i1))
5628 : return -1;
5629 0 : operands[2] = x1;
5630 0 : x2 = PATTERN (peep2_next_insn (1));
5631 0 : return pattern1786 (x2,
5632 0 : i1); /* [-1, 0] */
5633 : }
5634 :
5635 : int
5636 778 : pattern1794 (machine_mode i1)
5637 : {
5638 778 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5639 778 : int res ATTRIBUTE_UNUSED;
5640 778 : if (!vsib_address_operand (operands[0], i1))
5641 : return -1;
5642 760 : switch (GET_MODE (operands[2]))
5643 : {
5644 277 : case E_V16SImode:
5645 277 : if (!register_operand (operands[2], E_V16SImode)
5646 262 : || !register_operand (operands[6], E_HImode)
5647 204 : || !register_operand (operands[3], E_V16SImode)
5648 473 : || !scratch_operand (operands[1], E_HImode))
5649 81 : return -1;
5650 : return 0;
5651 :
5652 483 : case E_V8DImode:
5653 483 : if (pattern1793 (
5654 : E_QImode,
5655 : E_V8SImode,
5656 : E_V8DImode) != 0)
5657 : return -1;
5658 : return 1;
5659 :
5660 : default:
5661 : return -1;
5662 : }
5663 : }
5664 :
5665 : int
5666 25 : pattern1802 (rtx x1, machine_mode i1)
5667 : {
5668 25 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5669 25 : rtx x2, x3, x4, x5, x6, x7;
5670 25 : int res ATTRIBUTE_UNUSED;
5671 25 : if (!register_operand (operands[0], i1))
5672 : return -1;
5673 25 : x2 = XVECEXP (x1, 0, 0);
5674 25 : x3 = XEXP (x2, 1);
5675 25 : if (GET_MODE (x3) != i1
5676 25 : || !register_operand (operands[1], i1))
5677 0 : return -1;
5678 25 : x4 = XVECEXP (x1, 0, 1);
5679 25 : x5 = XEXP (x4, 0);
5680 25 : if (GET_MODE (x5) != i1)
5681 : return -1;
5682 25 : x6 = XEXP (x4, 1);
5683 25 : if (GET_MODE (x6) != i1)
5684 : return -1;
5685 25 : x7 = XEXP (x6, 0);
5686 25 : if (GET_MODE (x7) != i1
5687 25 : || !const_int_operand (operands[2], i1))
5688 0 : return -1;
5689 : return 0;
5690 : }
5691 :
5692 : int
5693 684 : pattern1814 (rtx x1)
5694 : {
5695 684 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5696 684 : rtx x2, x3, x4, x5, x6, x7;
5697 684 : int res ATTRIBUTE_UNUSED;
5698 684 : x2 = XEXP (x1, 1);
5699 684 : x3 = XEXP (x2, 0);
5700 684 : x4 = XEXP (x3, 1);
5701 684 : if (maybe_ne (SUBREG_BYTE (x4), 0)
5702 684 : || GET_MODE (x4) != E_QImode)
5703 : return -1;
5704 684 : x5 = XEXP (x4, 0);
5705 684 : switch (GET_CODE (x5))
5706 : {
5707 684 : case ASHIFTRT:
5708 684 : case LSHIFTRT:
5709 684 : case SIGN_EXTRACT:
5710 684 : case ZERO_EXTRACT:
5711 684 : operands[4] = x5;
5712 684 : x6 = XEXP (x5, 0);
5713 684 : operands[2] = x6;
5714 684 : if (!int248_register_operand (operands[2], E_VOIDmode))
5715 : return -1;
5716 663 : x7 = XEXP (x1, 0);
5717 663 : switch (GET_MODE (x7))
5718 : {
5719 580 : case E_HImode:
5720 580 : if (GET_MODE (x2) != E_HImode
5721 580 : || !extract_high_operator (operands[3], E_HImode)
5722 1160 : || !extract_high_operator (operands[4], E_HImode))
5723 0 : return -1;
5724 : return 0;
5725 :
5726 75 : case E_SImode:
5727 75 : if (GET_MODE (x2) != E_SImode
5728 75 : || !extract_high_operator (operands[3], E_SImode)
5729 150 : || !extract_high_operator (operands[4], E_SImode))
5730 0 : return -1;
5731 : return 1;
5732 :
5733 8 : case E_DImode:
5734 8 : if (GET_MODE (x2) != E_DImode
5735 8 : || !extract_high_operator (operands[3], E_DImode)
5736 16 : || !extract_high_operator (operands[4], E_DImode))
5737 0 : return -1;
5738 : return 2;
5739 :
5740 : default:
5741 : return -1;
5742 : }
5743 :
5744 : default:
5745 : return -1;
5746 : }
5747 : }
5748 :
5749 : int
5750 894 : pattern1836 (rtx x1, machine_mode i1, machine_mode i2)
5751 : {
5752 894 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5753 894 : rtx x2, x3, x4, x5, x6;
5754 894 : int res ATTRIBUTE_UNUSED;
5755 894 : if (!register_operand (operands[0], i1)
5756 894 : || GET_MODE (x1) != i1)
5757 : return -1;
5758 842 : x2 = XEXP (x1, 0);
5759 842 : if (GET_MODE (x2) != i1)
5760 : return -1;
5761 842 : x3 = XEXP (x2, 0);
5762 842 : if (GET_MODE (x3) != i2
5763 842 : || !nonimmediate_operand (operands[1], i1))
5764 0 : return -1;
5765 842 : x4 = XEXP (x1, 1);
5766 842 : operands[2] = x4;
5767 842 : if (!nonimm_or_0_operand (operands[2], i1))
5768 : return -1;
5769 822 : x5 = XEXP (x1, 2);
5770 822 : operands[3] = x5;
5771 822 : x6 = XEXP (x3, 1);
5772 822 : if (!rtx_equal_p (x6, operands[1]))
5773 : return -1;
5774 : return 0;
5775 : }
5776 :
5777 : int
5778 380 : pattern1846 (rtx x1, machine_mode i1, machine_mode i2, machine_mode i3)
5779 : {
5780 380 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5781 380 : rtx x2, x3, x4;
5782 380 : int res ATTRIBUTE_UNUSED;
5783 380 : if (!register_operand (operands[0], i3)
5784 380 : || GET_MODE (x1) != i3)
5785 : return -1;
5786 364 : x2 = XEXP (x1, 0);
5787 364 : if (GET_MODE (x2) != i3)
5788 : return -1;
5789 364 : x3 = XEXP (x2, 0);
5790 364 : if (GET_MODE (x3) != i2
5791 364 : || !register_operand (operands[1], i1))
5792 0 : return -1;
5793 364 : x4 = XEXP (x2, 1);
5794 364 : if (GET_MODE (x4) != i2
5795 364 : || !vector_operand (operands[2], i1))
5796 0 : return -1;
5797 : return 0;
5798 : }
5799 :
5800 : int
5801 625 : pattern1853 (rtx x1, machine_mode i1, machine_mode i2)
5802 : {
5803 625 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5804 625 : int res ATTRIBUTE_UNUSED;
5805 625 : if (!register_operand (operands[7], i1)
5806 589 : || !register_operand (operands[3], i2)
5807 1197 : || !scratch_operand (operands[2], i1))
5808 53 : return -1;
5809 572 : switch (GET_MODE (x1))
5810 : {
5811 0 : case E_SImode:
5812 0 : if (!vsib_address_operand (operands[4], E_SImode))
5813 : return -1;
5814 : return 0;
5815 :
5816 572 : case E_DImode:
5817 572 : if (!vsib_address_operand (operands[4], E_DImode))
5818 : return -1;
5819 : return 1;
5820 :
5821 : default:
5822 : return -1;
5823 : }
5824 : }
5825 :
5826 : int
5827 806 : pattern1861 ()
5828 : {
5829 806 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5830 806 : int res ATTRIBUTE_UNUSED;
5831 806 : if (!const_0_to_15_operand (operands[2], E_VOIDmode)
5832 806 : || !const_0_to_15_operand (operands[3], E_VOIDmode)
5833 806 : || !const_0_to_15_operand (operands[4], E_VOIDmode)
5834 806 : || !const_0_to_15_operand (operands[5], E_VOIDmode)
5835 806 : || !const_0_to_15_operand (operands[6], E_VOIDmode)
5836 806 : || !const_0_to_15_operand (operands[7], E_VOIDmode)
5837 806 : || !const_0_to_15_operand (operands[8], E_VOIDmode)
5838 806 : || !const_0_to_15_operand (operands[9], E_VOIDmode)
5839 806 : || !const_0_to_15_operand (operands[10], E_VOIDmode)
5840 806 : || !const_0_to_15_operand (operands[11], E_VOIDmode)
5841 806 : || !const_0_to_15_operand (operands[12], E_VOIDmode)
5842 806 : || !const_0_to_15_operand (operands[13], E_VOIDmode)
5843 806 : || !const_0_to_15_operand (operands[14], E_VOIDmode)
5844 806 : || !const_0_to_15_operand (operands[15], E_VOIDmode)
5845 806 : || !const_0_to_15_operand (operands[16], E_VOIDmode)
5846 1612 : || !const_0_to_15_operand (operands[17], E_VOIDmode))
5847 0 : return -1;
5848 : return 0;
5849 : }
5850 :
5851 : int
5852 419 : pattern1875 ()
5853 : {
5854 419 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5855 419 : int res ATTRIBUTE_UNUSED;
5856 419 : if (!const_0_to_7_operand (operands[4], E_VOIDmode)
5857 419 : || !const_0_to_7_operand (operands[5], E_VOIDmode)
5858 419 : || !const_0_to_7_operand (operands[6], E_VOIDmode)
5859 419 : || !const_8_to_15_operand (operands[7], E_VOIDmode)
5860 419 : || !const_8_to_15_operand (operands[8], E_VOIDmode)
5861 419 : || !const_8_to_15_operand (operands[9], E_VOIDmode)
5862 838 : || !const_8_to_15_operand (operands[10], E_VOIDmode))
5863 0 : return -1;
5864 : return 0;
5865 : }
5866 :
5867 : int
5868 36847 : pattern1880 (rtx x1)
5869 : {
5870 36847 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5871 36847 : rtx x2, x3, x4, x5;
5872 36847 : int res ATTRIBUTE_UNUSED;
5873 36847 : x2 = XVECEXP (x1, 0, 8);
5874 36847 : if (XWINT (x2, 0) != 12L)
5875 : return -1;
5876 36831 : x3 = XVECEXP (x1, 0, 9);
5877 36831 : if (XWINT (x3, 0) != 28L)
5878 : return -1;
5879 36831 : x4 = XVECEXP (x1, 0, 10);
5880 36831 : if (XWINT (x4, 0) != 13L)
5881 : return -1;
5882 36831 : x5 = XVECEXP (x1, 0, 11);
5883 36831 : if (XWINT (x5, 0) != 29L)
5884 0 : return -1;
5885 : return 0;
5886 : }
5887 :
5888 : int
5889 2575 : pattern1886 (rtx x1)
5890 : {
5891 2575 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5892 2575 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
5893 2575 : rtx x10, x11, x12;
5894 2575 : int res ATTRIBUTE_UNUSED;
5895 2575 : x2 = XVECEXP (x1, 0, 0);
5896 2575 : x3 = XEXP (x2, 1);
5897 2575 : x4 = XEXP (x3, 0);
5898 2575 : x5 = XEXP (x4, 1);
5899 2575 : switch (GET_CODE (x5))
5900 : {
5901 2076 : case SIGN_EXTEND:
5902 2076 : x6 = XEXP (x5, 0);
5903 2076 : operands[2] = x6;
5904 2076 : x7 = XEXP (x3, 1);
5905 2076 : x8 = XEXP (x7, 0);
5906 2076 : x9 = XEXP (x8, 1);
5907 2076 : if (!rtx_equal_p (x9, operands[2]))
5908 : return -1;
5909 2076 : x10 = XVECEXP (x1, 0, 1);
5910 2076 : x11 = XEXP (x10, 1);
5911 2076 : x12 = XEXP (x11, 1);
5912 2076 : if (!rtx_equal_p (x12, operands[2]))
5913 : return -1;
5914 2076 : switch (GET_MODE (x4))
5915 : {
5916 : case E_HImode:
5917 : return 0;
5918 :
5919 : case E_SImode:
5920 : return 1;
5921 :
5922 : case E_DImode:
5923 : return 2;
5924 :
5925 : case E_TImode:
5926 : return 3;
5927 :
5928 : default:
5929 : return -1;
5930 : }
5931 :
5932 499 : case CONST_INT:
5933 499 : operands[6] = x5;
5934 499 : x7 = XEXP (x3, 1);
5935 499 : x8 = XEXP (x7, 0);
5936 499 : x9 = XEXP (x8, 1);
5937 499 : operands[2] = x9;
5938 499 : x10 = XVECEXP (x1, 0, 1);
5939 499 : x11 = XEXP (x10, 1);
5940 499 : x12 = XEXP (x11, 1);
5941 499 : if (!rtx_equal_p (x12, operands[2]))
5942 : return -1;
5943 499 : switch (GET_MODE (x4))
5944 : {
5945 : case E_HImode:
5946 : return 4;
5947 :
5948 : case E_SImode:
5949 : return 5;
5950 :
5951 : case E_DImode:
5952 : return 6;
5953 :
5954 : case E_TImode:
5955 : return 7;
5956 :
5957 : default:
5958 : return -1;
5959 : }
5960 :
5961 : default:
5962 : return -1;
5963 : }
5964 : }
5965 :
5966 : int
5967 2 : pattern1898 (rtx x1)
5968 : {
5969 2 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5970 2 : rtx x2, x3, x4, x5, x6, x7, x8;
5971 2 : int res ATTRIBUTE_UNUSED;
5972 2 : x2 = XEXP (x1, 1);
5973 2 : x3 = XEXP (x2, 0);
5974 2 : x4 = XEXP (x3, 0);
5975 2 : if (GET_CODE (x4) != REG
5976 2 : || REGNO (x4) != 17
5977 4 : || GET_MODE (x4) != E_CCZmode)
5978 : return -1;
5979 2 : x5 = XEXP (x3, 1);
5980 2 : if (x5 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
5981 : return -1;
5982 2 : x6 = XEXP (x2, 1);
5983 2 : if (GET_CODE (x6) != LABEL_REF)
5984 : return -1;
5985 2 : x7 = XEXP (x2, 2);
5986 2 : if (GET_CODE (x7) != PC)
5987 : return -1;
5988 2 : x8 = XEXP (x1, 0);
5989 2 : if (GET_CODE (x8) != PC)
5990 0 : return -1;
5991 : return 0;
5992 : }
5993 :
5994 : int
5995 968 : pattern1906 (rtx x1, machine_mode i1, machine_mode i2)
5996 : {
5997 968 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5998 968 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
5999 968 : int res ATTRIBUTE_UNUSED;
6000 968 : x2 = XVECEXP (x1, 0, 0);
6001 968 : x3 = XEXP (x2, 1);
6002 968 : x4 = XEXP (x3, 1);
6003 968 : if (GET_MODE (x4) != i2)
6004 : return -1;
6005 968 : x5 = XEXP (x4, 0);
6006 968 : if (GET_MODE (x5) != i1)
6007 : return -1;
6008 968 : x6 = XEXP (x5, 0);
6009 968 : if (GET_MODE (x6) != i1
6010 968 : || !ix86_carry_flag_operator (operands[5], i1)
6011 1936 : || !nonimmediate_operand (operands[0], i1))
6012 0 : return -1;
6013 968 : x7 = XVECEXP (x1, 0, 1);
6014 968 : x8 = XEXP (x7, 1);
6015 968 : if (GET_MODE (x8) != i1)
6016 : return -1;
6017 968 : x9 = XEXP (x8, 0);
6018 968 : if (GET_MODE (x9) != i1)
6019 : return -1;
6020 : return 0;
6021 : }
6022 :
6023 : int
6024 423 : pattern1915 (rtx x1)
6025 : {
6026 423 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
6027 423 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
6028 423 : int res ATTRIBUTE_UNUSED;
6029 423 : x2 = XVECEXP (x1, 0, 8);
6030 423 : if (XWINT (x2, 0) != 12L)
6031 : return -1;
6032 423 : x3 = XVECEXP (x1, 0, 9);
6033 423 : if (XWINT (x3, 0) != 44L)
6034 : return -1;
6035 423 : x4 = XVECEXP (x1, 0, 10);
6036 423 : if (XWINT (x4, 0) != 13L)
6037 : return -1;
6038 423 : x5 = XVECEXP (x1, 0, 11);
6039 423 : if (XWINT (x5, 0) != 45L)
6040 : return -1;
6041 423 : x6 = XVECEXP (x1, 0, 12);
6042 423 : if (XWINT (x6, 0) != 14L)
6043 : return -1;
6044 423 : x7 = XVECEXP (x1, 0, 13);
6045 423 : if (XWINT (x7, 0) != 46L)
6046 : return -1;
6047 423 : x8 = XVECEXP (x1, 0, 14);
6048 423 : if (XWINT (x8, 0) != 15L)
6049 : return -1;
6050 423 : x9 = XVECEXP (x1, 0, 15);
6051 423 : if (XWINT (x9, 0) != 47L)
6052 0 : return -1;
6053 : return 0;
6054 : }
6055 :
6056 : int
6057 54516147 : recog_4 (rtx x1 ATTRIBUTE_UNUSED,
6058 : rtx_insn *insn ATTRIBUTE_UNUSED,
6059 : int *pnum_clobbers ATTRIBUTE_UNUSED)
6060 : {
6061 54516147 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
6062 54516147 : rtx x2, x3, x4, x5, x6, x7, x8;
6063 54516147 : int res ATTRIBUTE_UNUSED;
6064 54516147 : x2 = XEXP (x1, 1);
6065 54516147 : x3 = XEXP (x2, 0);
6066 54516147 : operands[0] = x3;
6067 54516147 : res = recog_3 (x1, insn, pnum_clobbers);
6068 54516147 : if (res >= 0)
6069 : return res;
6070 1536754 : if (GET_CODE (x3) != SUBREG
6071 92041 : || maybe_ne (SUBREG_BYTE (x3), 0)
6072 1618124 : || GET_MODE (x3) != E_QImode)
6073 : return -1;
6074 36916 : x4 = XEXP (x3, 0);
6075 36916 : switch (GET_CODE (x4))
6076 : {
6077 24859 : case ASHIFTRT:
6078 24859 : case LSHIFTRT:
6079 24859 : case SIGN_EXTRACT:
6080 24859 : case ZERO_EXTRACT:
6081 24859 : operands[2] = x4;
6082 24859 : x5 = XEXP (x4, 0);
6083 24859 : operands[0] = x5;
6084 24859 : if (!int248_register_operand (operands[0], E_VOIDmode))
6085 : return -1;
6086 24638 : x6 = XEXP (x2, 1);
6087 24638 : operands[1] = x6;
6088 24638 : switch (pattern1212 ())
6089 : {
6090 266 : case 0:
6091 266 : if (const0_operand (operands[1], E_QImode)
6092 300 : &&
6093 : #line 1640 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
6094 : (ix86_match_ccmode (insn, CCNOmode)))
6095 : return 28; /* *cmpqi_exthi_2 */
6096 : if (general_operand (operands[1], E_QImode)
6097 : &&
6098 : #line 1663 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
6099 : (ix86_match_ccmode (insn, CCmode)))
6100 : return 31; /* *cmpqi_exthi_3 */
6101 : break;
6102 :
6103 : case 1:
6104 : if (const0_operand (operands[1], E_QImode)
6105 : &&
6106 : #line 1640 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
6107 : (ix86_match_ccmode (insn, CCNOmode)))
6108 : return 29; /* *cmpqi_extsi_2 */
6109 : if (general_operand (operands[1], E_QImode)
6110 : &&
6111 : #line 1663 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
6112 : (ix86_match_ccmode (insn, CCmode)))
6113 : return 32; /* *cmpqi_extsi_3 */
6114 : break;
6115 :
6116 : case 2:
6117 : if (const0_operand (operands[1], E_QImode)
6118 : && (
6119 : #line 1640 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
6120 : (ix86_match_ccmode (insn, CCNOmode)) &&
6121 : #line 1165 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
6122 : (TARGET_64BIT)))
6123 : return 30; /* *cmpqi_extdi_2 */
6124 : if (general_operand (operands[1], E_QImode)
6125 : && (
6126 : #line 1663 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
6127 : (ix86_match_ccmode (insn, CCmode)) &&
6128 : #line 1165 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
6129 : (TARGET_64BIT)))
6130 : return 33; /* *cmpqi_extdi_3 */
6131 : break;
6132 :
6133 : default:
6134 : break;
6135 : }
6136 : if (GET_CODE (x6) != SUBREG
6137 : || maybe_ne (SUBREG_BYTE (x6), 0)
6138 : || GET_MODE (x6) != E_QImode)
6139 : return -1;
6140 : x7 = XEXP (x6, 0);
6141 : switch (GET_CODE (x7))
6142 : {
6143 : case ASHIFTRT:
6144 : case LSHIFTRT:
6145 : case SIGN_EXTRACT:
6146 : case ZERO_EXTRACT:
6147 : operands[3] = x7;
6148 : x8 = XEXP (x7, 0);
6149 : operands[1] = x8;
6150 : if (!int248_register_operand (operands[1], E_VOIDmode))
6151 : return -1;
6152 : switch (GET_MODE (operands[2]))
6153 : {
6154 : case E_HImode:
6155 : if (!extract_high_operator (operands[2], E_HImode)
6156 : || !extract_high_operator (operands[3], E_HImode)
6157 : || !
6158 : #line 1678 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
6159 : (ix86_match_ccmode (insn, CCmode)))
6160 : return -1;
6161 : return 34; /* *cmpqi_exthi_4 */
6162 :
6163 : case E_SImode:
6164 : if (!extract_high_operator (operands[2], E_SImode)
6165 : || !extract_high_operator (operands[3], E_SImode)
6166 : || !
6167 : #line 1678 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
6168 : (ix86_match_ccmode (insn, CCmode)))
6169 : return -1;
6170 : return 35; /* *cmpqi_extsi_4 */
6171 :
6172 : case E_DImode:
6173 : if (!extract_high_operator (operands[2], E_DImode)
6174 : || !extract_high_operator (operands[3], E_DImode)
6175 : || !(
6176 : #line 1678 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
6177 : (ix86_match_ccmode (insn, CCmode)) &&
6178 : #line 1165 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
6179 : (TARGET_64BIT)))
6180 : return -1;
6181 : return 36; /* *cmpqi_extdi_4 */
6182 :
6183 : default:
6184 : return -1;
6185 : }
6186 :
6187 : default:
6188 : return -1;
6189 : }
6190 :
6191 : default:
6192 : return -1;
6193 : }
6194 : }
6195 :
6196 : int
6197 : recog_12 (rtx x1 ATTRIBUTE_UNUSED,
6198 : rtx_insn *insn ATTRIBUTE_UNUSED,
6199 : int *pnum_clobbers ATTRIBUTE_UNUSED)
6200 : {
6201 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
6202 : rtx x2, x3, x4;
6203 : int res ATTRIBUTE_UNUSED;
6204 : switch (pattern74 (x1))
6205 : {
6206 : case 0:
6207 : x2 = XEXP (x1, 1);
6208 : x3 = XVECEXP (x2, 0, 2);
6209 : operands[3] = x3;
6210 : x4 = XVECEXP (x2, 0, 1);
6211 : operands[2] = x4;
6212 : switch (pattern967 (x2))
6213 : {
6214 : case 0:
6215 : switch (GET_MODE (operands[1]))
6216 : {
6217 : case E_HFmode:
6218 : if (register_operand (operands[1], E_HFmode)
6219 : && nonimmediate_operand (operands[2], E_HFmode)
6220 : && const_0_to_31_operand (operands[3], E_SImode)
6221 : &&
6222 : #line 20065 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
6223 : (TARGET_AVX512FP16))
6224 : return 1489; /* setcc_hf_mask */
6225 : break;
6226 :
6227 : case E_V8SImode:
6228 : if (const_0_to_7_operand (operands[3], E_SImode))
6229 : {
6230 : if (register_operand (operands[1], E_V8SImode)
6231 : && nonimmediate_operand (operands[2], E_V8SImode)
6232 : && (
6233 : #line 4621 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
6234 : (TARGET_AVX512F && 1) &&
6235 : #line 318 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
6236 : (TARGET_AVX512VL)))
6237 : return 3325; /* avx512vl_cmpv8si3 */
6238 : if (general_operand (operands[1], E_V8SImode)
6239 : && general_operand (operands[2], E_V8SImode)
6240 : && (
6241 : #line 4907 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
6242 : (TARGET_AVX512F && ix86_pre_reload_split ()
6243 : && rtx_equal_p (operands[1], operands[2])
6244 : && (!MEM_P (operands[1]) || !MEM_VOLATILE_P (operands[1]))) &&
6245 : #line 506 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
6246 : (TARGET_AVX512VL)))
6247 : return 3555; /* *avx512vl_cmpv8si3_dup_op */
6248 : }
6249 : break;
6250 :
6251 : case E_V4SImode:
6252 : if (const_0_to_7_operand (operands[3], E_SImode))
6253 : {
6254 : if (register_operand (operands[1], E_V4SImode)
6255 : && nonimmediate_operand (operands[2], E_V4SImode)
6256 : && (
6257 : #line 4621 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
6258 : (TARGET_AVX512F && 1) &&
6259 : #line 318 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
6260 : (TARGET_AVX512VL)))
6261 : return 3327; /* avx512vl_cmpv4si3 */
6262 : if (general_operand (operands[1], E_V4SImode)
6263 : && general_operand (operands[2], E_V4SImode)
6264 : && (
6265 : #line 4907 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
6266 : (TARGET_AVX512F && ix86_pre_reload_split ()
6267 : && rtx_equal_p (operands[1], operands[2])
6268 : && (!MEM_P (operands[1]) || !MEM_VOLATILE_P (operands[1]))) &&
6269 : #line 506 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
6270 : (TARGET_AVX512VL)))
6271 : return 3557; /* *avx512vl_cmpv4si3_dup_op */
6272 : }
6273 : break;
6274 :
6275 : case E_V8DImode:
6276 : if (const_0_to_7_operand (operands[3], E_SImode))
6277 : {
6278 : if (register_operand (operands[1], E_V8DImode)
6279 : && nonimmediate_operand (operands[2], E_V8DImode)
6280 : &&
6281 : #line 4621 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
6282 : (TARGET_AVX512F && 1))
6283 : return 3329; /* avx512f_cmpv8di3 */
6284 : if (general_operand (operands[1], E_V8DImode)
6285 : && general_operand (operands[2], E_V8DImode)
6286 : &&
6287 : #line 4907 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
6288 : (TARGET_AVX512F && ix86_pre_reload_split ()
6289 : && rtx_equal_p (operands[1], operands[2])
6290 : && (!MEM_P (operands[1]) || !MEM_VOLATILE_P (operands[1]))))
6291 : return 3559; /* *avx512f_cmpv8di3_dup_op */
6292 : }
6293 : break;
6294 :
6295 : case E_V4DImode:
6296 : if (const_0_to_7_operand (operands[3], E_SImode))
6297 : {
6298 : if (register_operand (operands[1], E_V4DImode)
6299 : && nonimmediate_operand (operands[2], E_V4DImode)
6300 : && (
6301 : #line 4621 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
6302 : (TARGET_AVX512F && 1) &&
6303 : #line 319 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
6304 : (TARGET_AVX512VL)))
6305 : return 3333; /* avx512vl_cmpv4di3 */
6306 : if (general_operand (operands[1], E_V4DImode)
6307 : && general_operand (operands[2], E_V4DImode)
6308 : && (
6309 : #line 4907 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
6310 : (TARGET_AVX512F && ix86_pre_reload_split ()
6311 : && rtx_equal_p (operands[1], operands[2])
6312 : && (!MEM_P (operands[1]) || !MEM_VOLATILE_P (operands[1]))) &&
6313 : #line 507 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
6314 : (TARGET_AVX512VL)))
6315 : return 3561; /* *avx512vl_cmpv4di3_dup_op */
6316 : }
6317 : break;
6318 :
6319 : case E_V2DImode:
6320 : if (const_0_to_7_operand (operands[3], E_SImode))
6321 : {
6322 : if (register_operand (operands[1], E_V2DImode)
6323 : && nonimmediate_operand (operands[2], E_V2DImode)
6324 : && (
6325 : #line 4621 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
6326 : (TARGET_AVX512F && 1) &&
6327 : #line 319 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
6328 : (TARGET_AVX512VL)))
6329 : return 3335; /* avx512vl_cmpv2di3 */
6330 : if (general_operand (operands[1], E_V2DImode)
6331 : && general_operand (operands[2], E_V2DImode)
6332 : && (
6333 : #line 4907 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
6334 : (TARGET_AVX512F && ix86_pre_reload_split ()
6335 : && rtx_equal_p (operands[1], operands[2])
6336 : && (!MEM_P (operands[1]) || !MEM_VOLATILE_P (operands[1]))) &&
6337 : #line 507 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
6338 : (TARGET_AVX512VL)))
6339 : return 3563; /* *avx512vl_cmpv2di3_dup_op */
6340 : }
6341 : break;
6342 :
6343 : case E_V8HFmode:
6344 : if (register_operand (operands[1], E_V8HFmode)
6345 : && nonimmediate_operand (operands[2], E_V8HFmode)
6346 : && const_0_to_31_operand (operands[3], E_SImode)
6347 : && (
6348 : #line 4621 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
6349 : (TARGET_AVX512F && 1) &&
6350 : #line 322 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
6351 : (TARGET_AVX512FP16 && TARGET_AVX512VL)))
6352 : return 3343; /* avx512fp16_cmpv8hf3 */
6353 : break;
6354 :
6355 : case E_V8SFmode:
6356 : if (register_operand (operands[1], E_V8SFmode)
6357 : && nonimmediate_operand (operands[2], E_V8SFmode)
6358 : && const_0_to_31_operand (operands[3], E_SImode)
6359 : && (
6360 : #line 4621 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
6361 : (TARGET_AVX512F && 1) &&
6362 : #line 323 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
6363 : (TARGET_AVX512VL)))
6364 : return 3349; /* avx512vl_cmpv8sf3 */
6365 : break;
6366 :
6367 : case E_V4SFmode:
6368 : if (register_operand (operands[1], E_V4SFmode)
6369 : && nonimmediate_operand (operands[2], E_V4SFmode)
6370 : && const_0_to_31_operand (operands[3], E_SImode)
6371 : && (
6372 : #line 4621 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
6373 : (TARGET_AVX512F && 1) &&
6374 : #line 323 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
6375 : (TARGET_AVX512VL)))
6376 : return 3351; /* avx512vl_cmpv4sf3 */
6377 : break;
6378 :
6379 : case E_V8DFmode:
6380 : if (register_operand (operands[1], E_V8DFmode)
6381 : && nonimmediate_operand (operands[2], E_V8DFmode)
6382 : && const_0_to_31_operand (operands[3], E_SImode)
6383 : &&
6384 : #line 4621 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
6385 : (TARGET_AVX512F && 1))
6386 : return 3353; /* avx512f_cmpv8df3 */
6387 : break;
6388 :
6389 : case E_V4DFmode:
6390 : if (register_operand (operands[1], E_V4DFmode)
6391 : && nonimmediate_operand (operands[2], E_V4DFmode)
6392 : && const_0_to_31_operand (operands[3], E_SImode)
6393 : && (
6394 : #line 4621 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
6395 : (TARGET_AVX512F && 1) &&
6396 : #line 324 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
6397 : (TARGET_AVX512VL)))
6398 : return 3357; /* avx512vl_cmpv4df3 */
6399 : break;
6400 :
6401 : case E_V2DFmode:
6402 : if (register_operand (operands[1], E_V2DFmode)
6403 : && nonimmediate_operand (operands[2], E_V2DFmode)
6404 : && const_0_to_31_operand (operands[3], E_SImode)
6405 : && (
6406 : #line 4621 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
6407 : (TARGET_AVX512F && 1) &&
6408 : #line 324 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
6409 : (TARGET_AVX512VL)))
6410 : return 3359; /* avx512vl_cmpv2df3 */
6411 : break;
6412 :
6413 : case E_V8HImode:
6414 : if (const_0_to_7_operand (operands[3], E_SImode))
6415 : {
6416 : if (register_operand (operands[1], E_V8HImode)
6417 : && nonimmediate_operand (operands[2], E_V8HImode)
6418 : && (
6419 : #line 4815 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
6420 : (TARGET_AVX512BW) &&
6421 : #line 329 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
6422 : (TARGET_AVX512VL)))
6423 : return 3491; /* avx512vl_cmpv8hi3 */
6424 : if (general_operand (operands[1], E_V8HImode)
6425 : && general_operand (operands[2], E_V8HImode)
6426 : && (
6427 : #line 4907 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
6428 : (TARGET_AVX512F && ix86_pre_reload_split ()
6429 : && rtx_equal_p (operands[1], operands[2])
6430 : && (!MEM_P (operands[1]) || !MEM_VOLATILE_P (operands[1]))) &&
6431 : #line 505 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
6432 : (TARGET_AVX512VL && TARGET_AVX512BW)))
6433 : return 3551; /* *avx512vl_cmpv8hi3_dup_op */
6434 : }
6435 : break;
6436 :
6437 : case E_V8BFmode:
6438 : if (register_operand (operands[1], E_V8BFmode)
6439 : && nonimmediate_operand (operands[2], E_V8BFmode)
6440 : && const_0_to_31_operand (operands[3], E_VOIDmode)
6441 : &&
6442 : #line 33167 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
6443 : (TARGET_AVX10_2))
6444 : return 10801; /* avx10_2_cmpbf16_v8bf */
6445 : break;
6446 :
6447 : default:
6448 : break;
6449 : }
6450 : break;
6451 :
6452 : case 1:
6453 : switch (GET_MODE (operands[1]))
6454 : {
6455 : case E_V16SImode:
6456 : if (const_0_to_7_operand (operands[3], E_SImode))
6457 : {
6458 : if (register_operand (operands[1], E_V16SImode)
6459 : && nonimmediate_operand (operands[2], E_V16SImode)
6460 : &&
6461 : #line 4621 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
6462 : (TARGET_AVX512F && 1))
6463 : return 3321; /* avx512f_cmpv16si3 */
6464 : if (general_operand (operands[1], E_V16SImode)
6465 : && general_operand (operands[2], E_V16SImode)
6466 : &&
6467 : #line 4907 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
6468 : (TARGET_AVX512F && ix86_pre_reload_split ()
6469 : && rtx_equal_p (operands[1], operands[2])
6470 : && (!MEM_P (operands[1]) || !MEM_VOLATILE_P (operands[1]))))
6471 : return 3553; /* *avx512f_cmpv16si3_dup_op */
6472 : }
6473 : break;
6474 :
6475 : case E_V16HFmode:
6476 : if (register_operand (operands[1], E_V16HFmode)
6477 : && nonimmediate_operand (operands[2], E_V16HFmode)
6478 : && const_0_to_31_operand (operands[3], E_SImode)
6479 : && (
6480 : #line 4621 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
6481 : (TARGET_AVX512F && 1) &&
6482 : #line 321 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
6483 : (TARGET_AVX512FP16 && TARGET_AVX512VL)))
6484 : return 3341; /* avx512vl_cmpv16hf3 */
6485 : break;
6486 :
6487 : case E_V16SFmode:
6488 : if (register_operand (operands[1], E_V16SFmode)
6489 : && nonimmediate_operand (operands[2], E_V16SFmode)
6490 : && const_0_to_31_operand (operands[3], E_SImode)
6491 : &&
6492 : #line 4621 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
6493 : (TARGET_AVX512F && 1))
6494 : return 3345; /* avx512f_cmpv16sf3 */
6495 : break;
6496 :
6497 : case E_V16QImode:
6498 : if (const_0_to_7_operand (operands[3], E_SImode))
6499 : {
6500 : if (register_operand (operands[1], E_V16QImode)
6501 : && nonimmediate_operand (operands[2], E_V16QImode)
6502 : && (
6503 : #line 4815 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
6504 : (TARGET_AVX512BW) &&
6505 : #line 328 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
6506 : (TARGET_AVX512VL)))
6507 : return 3483; /* avx512vl_cmpv16qi3 */
6508 : if (general_operand (operands[1], E_V16QImode)
6509 : && general_operand (operands[2], E_V16QImode)
6510 : && (
6511 : #line 4907 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
6512 : (TARGET_AVX512F && ix86_pre_reload_split ()
6513 : && rtx_equal_p (operands[1], operands[2])
6514 : && (!MEM_P (operands[1]) || !MEM_VOLATILE_P (operands[1]))) &&
6515 : #line 502 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
6516 : (TARGET_AVX512VL && TARGET_AVX512BW)))
6517 : return 3545; /* *avx512vl_cmpv16qi3_dup_op */
6518 : }
6519 : break;
6520 :
6521 : case E_V16HImode:
6522 : if (const_0_to_7_operand (operands[3], E_SImode))
6523 : {
6524 : if (register_operand (operands[1], E_V16HImode)
6525 : && nonimmediate_operand (operands[2], E_V16HImode)
6526 : && (
6527 : #line 4815 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
6528 : (TARGET_AVX512BW) &&
6529 : #line 329 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
6530 : (TARGET_AVX512VL)))
6531 : return 3489; /* avx512vl_cmpv16hi3 */
6532 : if (general_operand (operands[1], E_V16HImode)
6533 : && general_operand (operands[2], E_V16HImode)
6534 : && (
6535 : #line 4907 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
6536 : (TARGET_AVX512F && ix86_pre_reload_split ()
6537 : && rtx_equal_p (operands[1], operands[2])
6538 : && (!MEM_P (operands[1]) || !MEM_VOLATILE_P (operands[1]))) &&
6539 : #line 504 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
6540 : (TARGET_AVX512VL && TARGET_AVX512BW)))
6541 : return 3549; /* *avx512vl_cmpv16hi3_dup_op */
6542 : }
6543 : break;
6544 :
6545 : case E_V16BFmode:
6546 : if (register_operand (operands[1], E_V16BFmode)
6547 : && nonimmediate_operand (operands[2], E_V16BFmode)
6548 : && const_0_to_31_operand (operands[3], E_VOIDmode)
6549 : &&
6550 : #line 33167 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
6551 : (TARGET_AVX10_2))
6552 : return 10799; /* avx10_2_cmpbf16_v16bf */
6553 : break;
6554 :
6555 : default:
6556 : break;
6557 : }
6558 : break;
6559 :
6560 : default:
6561 : break;
6562 : }
6563 : if (XWINT (x3, 0) != 0L)
6564 : return -1;
6565 : operands[2] = x4;
6566 : switch (pattern968 (x2))
6567 : {
6568 : case 0:
6569 : if (!(
6570 : #line 4935 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
6571 : (TARGET_AVX512BW && !(MEM_P (operands[1]) && MEM_P (operands[2]))) &&
6572 : #line 328 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
6573 : (TARGET_AVX512VL)))
6574 : return -1;
6575 : return 3569; /* *avx512vl_eqv16qi3_1 */
6576 :
6577 : case 1:
6578 : if (!(
6579 : #line 4935 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
6580 : (TARGET_AVX512BW && !(MEM_P (operands[1]) && MEM_P (operands[2]))) &&
6581 : #line 329 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
6582 : (TARGET_AVX512VL)))
6583 : return -1;
6584 : return 3581; /* *avx512vl_eqv16hi3_1 */
6585 :
6586 : case 2:
6587 : if (!
6588 : #line 5024 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
6589 : (TARGET_AVX512F && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
6590 : return -1;
6591 : return 3637; /* *avx512f_eqv16si3_1 */
6592 :
6593 : case 3:
6594 : if (!(
6595 : #line 4935 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
6596 : (TARGET_AVX512BW && !(MEM_P (operands[1]) && MEM_P (operands[2]))) &&
6597 : #line 329 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
6598 : (TARGET_AVX512VL)))
6599 : return -1;
6600 : return 3585; /* *avx512vl_eqv8hi3_1 */
6601 :
6602 : case 4:
6603 : if (!(
6604 : #line 5024 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
6605 : (TARGET_AVX512F && !(MEM_P (operands[1]) && MEM_P (operands[2]))) &&
6606 : #line 496 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
6607 : (TARGET_AVX512VL)))
6608 : return -1;
6609 : return 3641; /* *avx512vl_eqv8si3_1 */
6610 :
6611 : case 5:
6612 : if (!(
6613 : #line 5024 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
6614 : (TARGET_AVX512F && !(MEM_P (operands[1]) && MEM_P (operands[2]))) &&
6615 : #line 496 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
6616 : (TARGET_AVX512VL)))
6617 : return -1;
6618 : return 3645; /* *avx512vl_eqv4si3_1 */
6619 :
6620 : case 6:
6621 : if (!
6622 : #line 5024 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
6623 : (TARGET_AVX512F && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
6624 : return -1;
6625 : return 3649; /* *avx512f_eqv8di3_1 */
6626 :
6627 : case 7:
6628 : if (!(
6629 : #line 5024 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
6630 : (TARGET_AVX512F && !(MEM_P (operands[1]) && MEM_P (operands[2]))) &&
6631 : #line 497 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
6632 : (TARGET_AVX512VL)))
6633 : return -1;
6634 : return 3653; /* *avx512vl_eqv4di3_1 */
6635 :
6636 : case 8:
6637 : if (!(
6638 : #line 5024 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
6639 : (TARGET_AVX512F && !(MEM_P (operands[1]) && MEM_P (operands[2]))) &&
6640 : #line 497 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
6641 : (TARGET_AVX512VL)))
6642 : return -1;
6643 : return 3657; /* *avx512vl_eqv2di3_1 */
6644 :
6645 : default:
6646 : return -1;
6647 : }
6648 :
6649 : case 1:
6650 : if (!(
6651 : #line 5143 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
6652 : (TARGET_AVX512BW && ix86_pre_reload_split ()
6653 : && ix86_binary_operator_ok (US_MINUS, V16QImode, operands)
6654 : && (INTVAL (operands[4]) & 3) == 0) &&
6655 : #line 328 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
6656 : (TARGET_AVX512VL)))
6657 : return -1;
6658 : return 3717; /* *avx512vl_ucmpv16qi3_1 */
6659 :
6660 : case 2:
6661 : if (!(
6662 : #line 5143 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
6663 : (TARGET_AVX512BW && ix86_pre_reload_split ()
6664 : && ix86_binary_operator_ok (US_MINUS, V16HImode, operands)
6665 : && (INTVAL (operands[4]) & 3) == 0) &&
6666 : #line 329 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
6667 : (TARGET_AVX512VL)))
6668 : return -1;
6669 : return 3723; /* *avx512vl_ucmpv16hi3_1 */
6670 :
6671 : case 3:
6672 : if (!(
6673 : #line 5143 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
6674 : (TARGET_AVX512BW && ix86_pre_reload_split ()
6675 : && ix86_binary_operator_ok (US_MINUS, V8HImode, operands)
6676 : && (INTVAL (operands[4]) & 3) == 0) &&
6677 : #line 329 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
6678 : (TARGET_AVX512VL)))
6679 : return -1;
6680 : return 3725; /* *avx512vl_ucmpv8hi3_1 */
6681 :
6682 : default:
6683 : return -1;
6684 : }
6685 : }
6686 :
6687 : int
6688 : recog_27 (rtx x1 ATTRIBUTE_UNUSED,
6689 : rtx_insn *insn ATTRIBUTE_UNUSED,
6690 : int *pnum_clobbers ATTRIBUTE_UNUSED)
6691 : {
6692 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
6693 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
6694 : rtx x10, x11, x12, x13, x14, x15, x16, x17;
6695 : int res ATTRIBUTE_UNUSED;
6696 : x2 = XEXP (x1, 1);
6697 : x3 = XEXP (x2, 0);
6698 : switch (GET_CODE (x3))
6699 : {
6700 : case AND:
6701 : x4 = XEXP (x1, 0);
6702 : operands[0] = x4;
6703 : switch (pattern76 (x2))
6704 : {
6705 : case 0:
6706 : if (!
6707 : #line 3715 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
6708 : (TARGET_64BIT
6709 : && CONST_WIDE_INT_P (operands[3])
6710 : && CONST_WIDE_INT_NUNITS (operands[3]) == 2
6711 : && CONST_WIDE_INT_ELT (operands[3], 0) == -1
6712 : && CONST_WIDE_INT_ELT (operands[3], 1) == 0))
6713 : return -1;
6714 : return 148; /* *insvti_highpart_1 */
6715 :
6716 : case 1:
6717 : if (!
6718 : #line 3737 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
6719 : (TARGET_64BIT
6720 : && CONST_WIDE_INT_P (operands[3])
6721 : && CONST_WIDE_INT_NUNITS (operands[3]) == 2
6722 : && CONST_WIDE_INT_ELT (operands[3], 0) == 0
6723 : && CONST_WIDE_INT_ELT (operands[3], 1) == -1))
6724 : return -1;
6725 : return 151; /* *insvti_lowpart_1 */
6726 :
6727 : case 2:
6728 : if (!
6729 : #line 3759 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
6730 : (!TARGET_64BIT
6731 : && CONST_INT_P (operands[3])
6732 : && UINTVAL (operands[3]) == 0xffffffff00000000ll))
6733 : return -1;
6734 : return 154; /* *insvdi_lowpart_1 */
6735 :
6736 : default:
6737 : return -1;
6738 : }
6739 :
6740 : case ASHIFT:
6741 : x4 = XEXP (x1, 0);
6742 : operands[0] = x4;
6743 : x5 = XEXP (x3, 0);
6744 : switch (GET_CODE (x5))
6745 : {
6746 : case REG:
6747 : case SUBREG:
6748 : operands[1] = x5;
6749 : x6 = XEXP (x3, 1);
6750 : operands[2] = x6;
6751 : switch (pattern617 (x2))
6752 : {
6753 : case 0:
6754 : if (!
6755 : #line 8048 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
6756 : ((!TARGET_PARTIAL_REG_STALL || optimize_function_for_size_p (cfun))
6757 : && ((unsigned HOST_WIDE_INT) INTVAL (operands[3])
6758 : < (HOST_WIDE_INT_1U << INTVAL (operands[2])))))
6759 : return -1;
6760 : return 376; /* *leaqi_general_4 */
6761 :
6762 : case 1:
6763 : if (!
6764 : #line 8048 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
6765 : ((!TARGET_PARTIAL_REG_STALL || optimize_function_for_size_p (cfun))
6766 : && ((unsigned HOST_WIDE_INT) INTVAL (operands[3])
6767 : < (HOST_WIDE_INT_1U << INTVAL (operands[2])))))
6768 : return -1;
6769 : return 378; /* *leahi_general_4 */
6770 :
6771 : case 2:
6772 : if (!(
6773 : #line 14473 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
6774 : (INTVAL (operands[2]) == 16 * BITS_PER_UNIT / 2
6775 : && (TImode == DImode
6776 : ? CONST_INT_P (operands[3])
6777 : && (UINTVAL (operands[3]) & ~GET_MODE_MASK (SImode)) == 0
6778 : : CONST_INT_P (operands[3])
6779 : ? INTVAL (operands[3]) >= 0
6780 : : CONST_WIDE_INT_NUNITS (operands[3]) == 2
6781 : && CONST_WIDE_INT_ELT (operands[3], 1) == 0)
6782 : && !(CONST_INT_P (operands[3])
6783 : ? ix86_endbr_immediate_operand (operands[3], VOIDmode)
6784 : : ix86_endbr_immediate_operand (GEN_INT (CONST_WIDE_INT_ELT (operands[3],
6785 : 0)),
6786 : VOIDmode))) &&
6787 : #line 1197 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
6788 : (TARGET_64BIT)))
6789 : return -1;
6790 : return 964; /* *concatditi3_5 */
6791 :
6792 : case 3:
6793 : if (!(
6794 : #line 14396 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
6795 : (INTVAL (operands[2]) == 8 * BITS_PER_UNIT) &&
6796 : #line 1237 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
6797 : (TARGET_64BIT)))
6798 : return -1;
6799 : return 928; /* *concatditi3_1 */
6800 :
6801 : default:
6802 : return -1;
6803 : }
6804 :
6805 : case ZERO_EXTEND:
6806 : x7 = XEXP (x5, 0);
6807 : switch (GET_CODE (x7))
6808 : {
6809 : case TRUNCATE:
6810 : if (GET_MODE (x7) != E_QImode)
6811 : return -1;
6812 : x8 = XEXP (x7, 0);
6813 : if (GET_CODE (x8) != MOD
6814 : || GET_MODE (x8) != E_HImode)
6815 : return -1;
6816 : x6 = XEXP (x3, 1);
6817 : if (x6 != const_int_rtx[MAX_SAVED_CONST_INT + 8])
6818 : return -1;
6819 : x9 = XEXP (x2, 1);
6820 : if (GET_CODE (x9) != ZERO_EXTEND
6821 : || GET_MODE (x9) != E_HImode)
6822 : return -1;
6823 : x10 = XEXP (x9, 0);
6824 : if (pattern1211 (x10,
6825 : E_HImode,
6826 : DIV,
6827 : E_QImode,
6828 : TRUNCATE) != 0
6829 : || pattern1007 (x2,
6830 : E_HImode) != 0)
6831 : return -1;
6832 : x11 = XEXP (x8, 0);
6833 : operands[1] = x11;
6834 : if (!register_operand (operands[1], E_HImode))
6835 : return -1;
6836 : x12 = XEXP (x8, 1);
6837 : if (GET_MODE (x12) != E_HImode)
6838 : return -1;
6839 : x13 = XEXP (x10, 0);
6840 : x14 = XEXP (x13, 1);
6841 : if (GET_MODE (x14) != E_HImode)
6842 : return -1;
6843 : x15 = XEXP (x13, 0);
6844 : if (!rtx_equal_p (x15, operands[1]))
6845 : return -1;
6846 : switch (GET_CODE (x12))
6847 : {
6848 : case SIGN_EXTEND:
6849 : if (GET_CODE (x14) != SIGN_EXTEND)
6850 : return -1;
6851 : x16 = XEXP (x12, 0);
6852 : operands[2] = x16;
6853 : if (!nonimmediate_operand (operands[2], E_QImode))
6854 : return -1;
6855 : x17 = XEXP (x14, 0);
6856 : if (!rtx_equal_p (x17, operands[2]))
6857 : return -1;
6858 : if (
6859 : #line 12360 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
6860 : (TARGET_QIMODE_MATH
6861 : && TARGET_APX_NF))
6862 : return 706; /* divmodhiqi3_nf */
6863 : if (pnum_clobbers == NULL
6864 : || !
6865 : #line 12360 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
6866 : (TARGET_QIMODE_MATH
6867 : && true))
6868 : return -1;
6869 : *pnum_clobbers = 1;
6870 : return 707; /* divmodhiqi3 */
6871 :
6872 : case ZERO_EXTEND:
6873 : if (GET_CODE (x14) != ZERO_EXTEND)
6874 : return -1;
6875 : x16 = XEXP (x12, 0);
6876 : operands[2] = x16;
6877 : if (!nonimmediate_operand (operands[2], E_QImode))
6878 : return -1;
6879 : x17 = XEXP (x14, 0);
6880 : if (!rtx_equal_p (x17, operands[2]))
6881 : return -1;
6882 : if (
6883 : #line 12360 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
6884 : (TARGET_QIMODE_MATH
6885 : && TARGET_APX_NF))
6886 : return 708; /* udivmodhiqi3_nf */
6887 : if (pnum_clobbers == NULL
6888 : || !
6889 : #line 12360 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
6890 : (TARGET_QIMODE_MATH
6891 : && true))
6892 : return -1;
6893 : *pnum_clobbers = 1;
6894 : return 709; /* udivmodhiqi3 */
6895 :
6896 : default:
6897 : return -1;
6898 : }
6899 :
6900 : case REG:
6901 : case SUBREG:
6902 : case MEM:
6903 : operands[1] = x7;
6904 : if (!nonimmediate_operand (operands[1], E_DImode)
6905 : || !nonimmediate_operand (operands[0], E_TImode)
6906 : || GET_MODE (x2) != E_TImode
6907 : || GET_MODE (x3) != E_TImode
6908 : || GET_MODE (x5) != E_TImode)
6909 : return -1;
6910 : x6 = XEXP (x3, 1);
6911 : operands[2] = x6;
6912 : if (!const_int_operand (operands[2], E_QImode))
6913 : return -1;
6914 : x9 = XEXP (x2, 1);
6915 : switch (pattern259 (x9,
6916 : E_DImode,
6917 : E_TImode))
6918 : {
6919 : case 0:
6920 : if (!(
6921 : #line 14432 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
6922 : (INTVAL (operands[2]) == 8 * BITS_PER_UNIT) &&
6923 : #line 1237 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
6924 : (TARGET_64BIT)))
6925 : return -1;
6926 : return 946; /* *concatditi3_3 */
6927 :
6928 : case 1:
6929 : if (!(
6930 : #line 14505 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
6931 : (INTVAL (operands[2]) == 8 * BITS_PER_UNIT
6932 : && (TImode == DImode
6933 : ? CONST_INT_P (operands[3])
6934 : && (UINTVAL (operands[3]) & ~GET_MODE_MASK (SImode)) == 0
6935 : : CONST_INT_P (operands[3])
6936 : ? INTVAL (operands[3]) >= 0
6937 : : CONST_WIDE_INT_NUNITS (operands[3]) == 2
6938 : && CONST_WIDE_INT_ELT (operands[3], 1) == 0)
6939 : && !(CONST_INT_P (operands[3])
6940 : ? ix86_endbr_immediate_operand (operands[3], VOIDmode)
6941 : : ix86_endbr_immediate_operand (GEN_INT (CONST_WIDE_INT_ELT (operands[3],
6942 : 0)),
6943 : VOIDmode))) &&
6944 : #line 1237 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
6945 : (TARGET_64BIT)))
6946 : return -1;
6947 : return 976; /* *concatditi3_6 */
6948 :
6949 : default:
6950 : return -1;
6951 : }
6952 :
6953 : default:
6954 : return -1;
6955 : }
6956 :
6957 : case SIGN_EXTEND:
6958 : switch (pattern260 (x2,
6959 : E_DImode,
6960 : E_TImode))
6961 : {
6962 : case 0:
6963 : if (!(
6964 : #line 14432 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
6965 : (INTVAL (operands[2]) == 8 * BITS_PER_UNIT) &&
6966 : #line 1237 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
6967 : (TARGET_64BIT)))
6968 : return -1;
6969 : return 943; /* *concatditi3_3 */
6970 :
6971 : case 1:
6972 : if (!(
6973 : #line 14505 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
6974 : (INTVAL (operands[2]) == 8 * BITS_PER_UNIT
6975 : && (TImode == DImode
6976 : ? CONST_INT_P (operands[3])
6977 : && (UINTVAL (operands[3]) & ~GET_MODE_MASK (SImode)) == 0
6978 : : CONST_INT_P (operands[3])
6979 : ? INTVAL (operands[3]) >= 0
6980 : : CONST_WIDE_INT_NUNITS (operands[3]) == 2
6981 : && CONST_WIDE_INT_ELT (operands[3], 1) == 0)
6982 : && !(CONST_INT_P (operands[3])
6983 : ? ix86_endbr_immediate_operand (operands[3], VOIDmode)
6984 : : ix86_endbr_immediate_operand (GEN_INT (CONST_WIDE_INT_ELT (operands[3],
6985 : 0)),
6986 : VOIDmode))) &&
6987 : #line 1237 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
6988 : (TARGET_64BIT)))
6989 : return -1;
6990 : return 973; /* *concatditi3_6 */
6991 :
6992 : default:
6993 : return -1;
6994 : }
6995 :
6996 : default:
6997 : return -1;
6998 : }
6999 :
7000 : case REG:
7001 : case SUBREG:
7002 : case MEM:
7003 : operands[1] = x3;
7004 : switch (pattern82 (x1, pnum_clobbers))
7005 : {
7006 : case 0:
7007 : if (
7008 : #line 13083 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7009 : (!TARGET_PARTIAL_REG_STALL || optimize_function_for_size_p (cfun)))
7010 : {
7011 : *pnum_clobbers = 1;
7012 : return 754; /* *iorqi_1_slp */
7013 : }
7014 : break;
7015 :
7016 : case 1:
7017 : if (
7018 : #line 13083 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7019 : (!TARGET_PARTIAL_REG_STALL || optimize_function_for_size_p (cfun)))
7020 : {
7021 : *pnum_clobbers = 1;
7022 : return 757; /* *iorhi_1_slp */
7023 : }
7024 : break;
7025 :
7026 : case 2:
7027 : if ((
7028 : #line 13847 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7029 : (ix86_binary_operator_ok (IOR, TImode, operands, TARGET_APX_NDD)) &&
7030 : #line 1237 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7031 : (TARGET_64BIT)))
7032 : {
7033 : *pnum_clobbers = 1;
7034 : return 849; /* *iorti3_doubleword */
7035 : }
7036 : break;
7037 :
7038 : case 3:
7039 : if (
7040 : #line 13905 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7041 : (ix86_binary_operator_ok (IOR, HImode, operands, TARGET_APX_NDD)
7042 : && TARGET_APX_NF))
7043 : return 851; /* *iorhi_1_nf */
7044 : if (pnum_clobbers != NULL
7045 : &&
7046 : #line 13905 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7047 : (ix86_binary_operator_ok (IOR, HImode, operands, TARGET_APX_NDD)
7048 : && true))
7049 : {
7050 : *pnum_clobbers = 1;
7051 : return 852; /* *iorhi_1 */
7052 : }
7053 : break;
7054 :
7055 : case 4:
7056 : if (
7057 : #line 1380 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
7058 : (TARGET_MMX_WITH_SSE))
7059 : return 2134; /* iorv2sf3 */
7060 : break;
7061 :
7062 : case 5:
7063 : if (
7064 : #line 2606 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
7065 : (TARGET_SSE))
7066 : return 2168; /* iorv2bf3 */
7067 : break;
7068 :
7069 : case 6:
7070 : if ((
7071 : #line 2606 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
7072 : (TARGET_SSE) &&
7073 : #line 2248 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
7074 : (TARGET_MMX_WITH_SSE)))
7075 : return 2171; /* iorv4bf3 */
7076 : break;
7077 :
7078 : case 7:
7079 : if (
7080 : #line 2606 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
7081 : (TARGET_SSE))
7082 : return 2174; /* iorv2hf3 */
7083 : break;
7084 :
7085 : case 8:
7086 : if ((
7087 : #line 2606 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
7088 : (TARGET_SSE) &&
7089 : #line 2249 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
7090 : (TARGET_MMX_WITH_SSE)))
7091 : return 2177; /* iorv4hf3 */
7092 : break;
7093 :
7094 : case 9:
7095 : if (
7096 : #line 4715 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
7097 : ((TARGET_MMX || TARGET_MMX_WITH_SSE)
7098 : && ix86_binary_operator_ok (IOR, V8QImode, operands)))
7099 : return 2331; /* *mmx_iorv8qi3 */
7100 : break;
7101 :
7102 : case 10:
7103 : if (
7104 : #line 4715 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
7105 : ((TARGET_MMX || TARGET_MMX_WITH_SSE)
7106 : && ix86_binary_operator_ok (IOR, V4HImode, operands)))
7107 : return 2334; /* *mmx_iorv4hi3 */
7108 : break;
7109 :
7110 : case 11:
7111 : if (
7112 : #line 4715 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
7113 : ((TARGET_MMX || TARGET_MMX_WITH_SSE)
7114 : && ix86_binary_operator_ok (IOR, V2SImode, operands)))
7115 : return 2337; /* *mmx_iorv2si3 */
7116 : break;
7117 :
7118 : case 12:
7119 : if (
7120 : #line 4741 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
7121 : (ix86_binary_operator_ok (IOR, V4QImode, operands)))
7122 : {
7123 : *pnum_clobbers = 1;
7124 : return 2340; /* *iorv4qi3 */
7125 : }
7126 : break;
7127 :
7128 : case 13:
7129 : if (
7130 : #line 4741 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
7131 : (ix86_binary_operator_ok (IOR, V2QImode, operands)))
7132 : {
7133 : *pnum_clobbers = 1;
7134 : return 2343; /* *iorv2qi3 */
7135 : }
7136 : break;
7137 :
7138 : case 14:
7139 : if (
7140 : #line 4741 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
7141 : (ix86_binary_operator_ok (IOR, V2HImode, operands)))
7142 : {
7143 : *pnum_clobbers = 1;
7144 : return 2346; /* *iorv2hi3 */
7145 : }
7146 : break;
7147 :
7148 : case 15:
7149 : if (
7150 : #line 6017 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7151 : (TARGET_SSE))
7152 : return 3855; /* iorbf3 */
7153 : break;
7154 :
7155 : case 16:
7156 : if (
7157 : #line 6017 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7158 : (TARGET_SSE))
7159 : return 3858; /* iorhf3 */
7160 : break;
7161 :
7162 : case 17:
7163 : if (
7164 : #line 6017 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7165 : (TARGET_SSE))
7166 : return 3861; /* iorsf3 */
7167 : break;
7168 :
7169 : case 18:
7170 : if ((
7171 : #line 6017 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7172 : (TARGET_SSE) &&
7173 : #line 1353 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7174 : (TARGET_SSE2)))
7175 : return 3864; /* iordf3 */
7176 : break;
7177 :
7178 : case 19:
7179 : if (
7180 : #line 6091 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7181 : (TARGET_SSE && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
7182 : return 3867; /* *iortf3 */
7183 : break;
7184 :
7185 : default:
7186 : break;
7187 : }
7188 : if (pnum_clobbers != NULL
7189 : && pattern83 (x2) == 0)
7190 : {
7191 : x5 = XEXP (x3, 0);
7192 : x7 = XEXP (x5, 0);
7193 : operands[2] = x7;
7194 : switch (pattern1080 (x1))
7195 : {
7196 : case 0:
7197 : if (
7198 : #line 13108 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7199 : (!TARGET_PARTIAL_REG_STALL || optimize_function_for_size_p (cfun)))
7200 : {
7201 : *pnum_clobbers = 1;
7202 : return 760; /* *iorqi_exthi_1_slp */
7203 : }
7204 : break;
7205 :
7206 : case 1:
7207 : if (
7208 : #line 13108 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7209 : (!TARGET_PARTIAL_REG_STALL || optimize_function_for_size_p (cfun)))
7210 : {
7211 : *pnum_clobbers = 1;
7212 : return 763; /* *iorqi_extsi_1_slp */
7213 : }
7214 : break;
7215 :
7216 : case 2:
7217 : if ((
7218 : #line 13108 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7219 : (!TARGET_PARTIAL_REG_STALL || optimize_function_for_size_p (cfun)) &&
7220 : #line 1165 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7221 : (TARGET_64BIT)))
7222 : {
7223 : *pnum_clobbers = 1;
7224 : return 766; /* *iorqi_extdi_1_slp */
7225 : }
7226 : break;
7227 :
7228 : case 3:
7229 : *pnum_clobbers = 1;
7230 : return 784; /* *iorqi_exthi_0 */
7231 :
7232 : case 4:
7233 : *pnum_clobbers = 1;
7234 : return 787; /* *iorqi_extsi_0 */
7235 :
7236 : case 5:
7237 : if (
7238 : #line 1165 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7239 : (TARGET_64BIT))
7240 : {
7241 : *pnum_clobbers = 1;
7242 : return 790; /* *iorqi_extdi_0 */
7243 : }
7244 : break;
7245 :
7246 : default:
7247 : break;
7248 : }
7249 : x9 = XEXP (x2, 1);
7250 : if (GET_CODE (x9) == SUBREG)
7251 : {
7252 : switch (pattern1083 (x1))
7253 : {
7254 : case 0:
7255 : if (
7256 : #line 13137 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7257 : (!TARGET_PARTIAL_REG_STALL || optimize_function_for_size_p (cfun)))
7258 : {
7259 : *pnum_clobbers = 1;
7260 : return 769; /* *iorqi_exthi_2_slp */
7261 : }
7262 : break;
7263 :
7264 : case 1:
7265 : if (
7266 : #line 13137 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7267 : (!TARGET_PARTIAL_REG_STALL || optimize_function_for_size_p (cfun)))
7268 : {
7269 : *pnum_clobbers = 1;
7270 : return 772; /* *iorqi_extsi_2_slp */
7271 : }
7272 : break;
7273 :
7274 : case 2:
7275 : if ((
7276 : #line 13137 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7277 : (!TARGET_PARTIAL_REG_STALL || optimize_function_for_size_p (cfun)) &&
7278 : #line 1165 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7279 : (TARGET_64BIT)))
7280 : {
7281 : *pnum_clobbers = 1;
7282 : return 775; /* *iorqi_extdi_2_slp */
7283 : }
7284 : break;
7285 :
7286 : case 3:
7287 : *pnum_clobbers = 1;
7288 : return 793; /* *iorqi_ext2hi_0 */
7289 :
7290 : case 4:
7291 : *pnum_clobbers = 1;
7292 : return 796; /* *iorqi_ext2si_0 */
7293 :
7294 : case 5:
7295 : if (
7296 : #line 1165 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7297 : (TARGET_64BIT))
7298 : {
7299 : *pnum_clobbers = 1;
7300 : return 799; /* *iorqi_ext2di_0 */
7301 : }
7302 : break;
7303 :
7304 : default:
7305 : break;
7306 : }
7307 : }
7308 : }
7309 : operands[1] = x3;
7310 : if (pattern84 (x1) != 0)
7311 : return -1;
7312 : if (
7313 : #line 14095 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7314 : (ix86_binary_operator_ok (IOR, QImode, operands, TARGET_APX_NDD)
7315 : && TARGET_APX_NF))
7316 : return 895; /* *iorqi_1_nf */
7317 : if (pnum_clobbers == NULL
7318 : || !
7319 : #line 14095 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7320 : (ix86_binary_operator_ok (IOR, QImode, operands, TARGET_APX_NDD)
7321 : && true))
7322 : return -1;
7323 : *pnum_clobbers = 1;
7324 : return 896; /* *iorqi_1 */
7325 :
7326 : case ZERO_EXTEND:
7327 : switch (pattern40 (x1))
7328 : {
7329 : case 0:
7330 : if (!(
7331 : #line 14413 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7332 : (INTVAL (operands[3]) == 8 * BITS_PER_UNIT) &&
7333 : #line 1237 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7334 : (TARGET_64BIT)))
7335 : return -1;
7336 : return 934; /* *concatditi3_2 */
7337 :
7338 : case 1:
7339 : if (!(
7340 : #line 14457 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7341 : (INTVAL (operands[3]) == 8 * BITS_PER_UNIT) &&
7342 : #line 1237 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7343 : (TARGET_64BIT)))
7344 : return -1;
7345 : return 955; /* *concatditi3_4 */
7346 :
7347 : case 2:
7348 : if (!(
7349 : #line 14457 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7350 : (INTVAL (operands[3]) == 8 * BITS_PER_UNIT) &&
7351 : #line 1237 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7352 : (TARGET_64BIT)))
7353 : return -1;
7354 : return 958; /* *concatditi3_4 */
7355 :
7356 : case 3:
7357 : if (!(
7358 : #line 14534 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7359 : (TImode == DImode
7360 : ? CONST_INT_P (operands[2])
7361 : && (UINTVAL (operands[2]) & GET_MODE_MASK (SImode)) == 0
7362 : && !ix86_endbr_immediate_operand (operands[2], VOIDmode)
7363 : : CONST_WIDE_INT_P (operands[2])
7364 : && CONST_WIDE_INT_NUNITS (operands[2]) == 2
7365 : && CONST_WIDE_INT_ELT (operands[2], 0) == 0
7366 : && !ix86_endbr_immediate_operand (GEN_INT (CONST_WIDE_INT_ELT (operands[2],
7367 : 1)),
7368 : VOIDmode)) &&
7369 : #line 1237 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7370 : (TARGET_64BIT)))
7371 : return -1;
7372 : return 982; /* *concatditi3_7 */
7373 :
7374 : default:
7375 : return -1;
7376 : }
7377 :
7378 : default:
7379 : return -1;
7380 : }
7381 : }
7382 :
7383 : int
7384 : recog_48 (rtx x1 ATTRIBUTE_UNUSED,
7385 : rtx_insn *insn ATTRIBUTE_UNUSED,
7386 : int *pnum_clobbers ATTRIBUTE_UNUSED)
7387 : {
7388 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
7389 : rtx x2, x3, x4;
7390 : int res ATTRIBUTE_UNUSED;
7391 : switch (pattern2 (x1, pnum_clobbers))
7392 : {
7393 : case 0:
7394 : if (!
7395 : #line 18532 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7396 : (ix86_binary_operator_ok (ROTATERT, QImode, operands)
7397 : && (INTVAL (operands[3]) & (GET_MODE_BITSIZE (QImode)-1))
7398 : == GET_MODE_BITSIZE (QImode)-1
7399 : && ix86_pre_reload_split ()))
7400 : return -1;
7401 : *pnum_clobbers = 1;
7402 : return 1325; /* *rotrqi3_mask_1 */
7403 :
7404 : case 1:
7405 : if (!
7406 : #line 18532 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7407 : (ix86_binary_operator_ok (ROTATERT, HImode, operands)
7408 : && (INTVAL (operands[3]) & (GET_MODE_BITSIZE (HImode)-1))
7409 : == GET_MODE_BITSIZE (HImode)-1
7410 : && ix86_pre_reload_split ()))
7411 : return -1;
7412 : *pnum_clobbers = 1;
7413 : return 1327; /* *rotrhi3_mask_1 */
7414 :
7415 : case 2:
7416 : if (!
7417 : #line 18613 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7418 : (ix86_binary_operator_ok (ROTATERT, QImode, operands)
7419 : && (INTVAL (operands[3]) & (1 * BITS_PER_UNIT - 1)) == 0
7420 : && ix86_pre_reload_split ()))
7421 : return -1;
7422 : *pnum_clobbers = 1;
7423 : return 1341; /* *rotrqi3_add_1 */
7424 :
7425 : case 3:
7426 : if (!
7427 : #line 18613 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7428 : (ix86_binary_operator_ok (ROTATERT, HImode, operands)
7429 : && (INTVAL (operands[3]) & (2 * BITS_PER_UNIT - 1)) == 0
7430 : && ix86_pre_reload_split ()))
7431 : return -1;
7432 : *pnum_clobbers = 1;
7433 : return 1343; /* *rotrhi3_add_1 */
7434 :
7435 : case 4:
7436 : if (!
7437 : #line 18682 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7438 : (ix86_binary_operator_ok (ROTATERT, QImode, operands)
7439 : && (INTVAL (operands[3]) & (1 * BITS_PER_UNIT - 1)) == 0
7440 : && ix86_pre_reload_split ()))
7441 : return -1;
7442 : *pnum_clobbers = 1;
7443 : return 1357; /* *rotrqi3_sub_1 */
7444 :
7445 : case 5:
7446 : if (!
7447 : #line 18682 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7448 : (ix86_binary_operator_ok (ROTATERT, HImode, operands)
7449 : && (INTVAL (operands[3]) & (2 * BITS_PER_UNIT - 1)) == 0
7450 : && ix86_pre_reload_split ()))
7451 : return -1;
7452 : *pnum_clobbers = 1;
7453 : return 1359; /* *rotrhi3_sub_1 */
7454 :
7455 : case 6:
7456 : x2 = XEXP (x1, 0);
7457 : operands[0] = x2;
7458 : x3 = XEXP (x1, 1);
7459 : switch (pattern268 (x3, pnum_clobbers))
7460 : {
7461 : case 0:
7462 : if (
7463 : #line 18484 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7464 : (ix86_binary_operator_ok (ROTATERT, QImode, operands)
7465 : && (INTVAL (operands[3]) & (GET_MODE_BITSIZE (QImode)-1))
7466 : == GET_MODE_BITSIZE (QImode)-1
7467 : && ix86_pre_reload_split ()))
7468 : {
7469 : *pnum_clobbers = 1;
7470 : return 1317; /* *rotrqi3_mask */
7471 : }
7472 : break;
7473 :
7474 : case 1:
7475 : if (
7476 : #line 18484 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7477 : (ix86_binary_operator_ok (ROTATERT, HImode, operands)
7478 : && (INTVAL (operands[3]) & (GET_MODE_BITSIZE (HImode)-1))
7479 : == GET_MODE_BITSIZE (HImode)-1
7480 : && ix86_pre_reload_split ()))
7481 : {
7482 : *pnum_clobbers = 1;
7483 : return 1319; /* *rotrhi3_mask */
7484 : }
7485 : break;
7486 :
7487 : case 2:
7488 : if (
7489 : #line 18577 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7490 : (ix86_binary_operator_ok (ROTATERT, QImode, operands)
7491 : && (INTVAL (operands[3]) & (1 * BITS_PER_UNIT - 1)) == 0
7492 : && ix86_pre_reload_split ()))
7493 : {
7494 : *pnum_clobbers = 1;
7495 : return 1333; /* *rotrqi3_add */
7496 : }
7497 : break;
7498 :
7499 : case 3:
7500 : if (
7501 : #line 18577 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7502 : (ix86_binary_operator_ok (ROTATERT, HImode, operands)
7503 : && (INTVAL (operands[3]) & (2 * BITS_PER_UNIT - 1)) == 0
7504 : && ix86_pre_reload_split ()))
7505 : {
7506 : *pnum_clobbers = 1;
7507 : return 1335; /* *rotrhi3_add */
7508 : }
7509 : break;
7510 :
7511 : case 4:
7512 : if (
7513 : #line 18646 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7514 : (ix86_binary_operator_ok (ROTATERT, QImode, operands)
7515 : && (INTVAL (operands[3]) & (1 * BITS_PER_UNIT - 1)) == 0
7516 : && ix86_pre_reload_split ()))
7517 : {
7518 : *pnum_clobbers = 1;
7519 : return 1349; /* *rotrqi3_sub */
7520 : }
7521 : break;
7522 :
7523 : case 5:
7524 : if (
7525 : #line 18646 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7526 : (ix86_binary_operator_ok (ROTATERT, HImode, operands)
7527 : && (INTVAL (operands[3]) & (2 * BITS_PER_UNIT - 1)) == 0
7528 : && ix86_pre_reload_split ()))
7529 : {
7530 : *pnum_clobbers = 1;
7531 : return 1351; /* *rotrhi3_sub */
7532 : }
7533 : break;
7534 :
7535 : case 6:
7536 : if (pnum_clobbers != NULL
7537 : && pattern626 (x3) == 0
7538 : &&
7539 : #line 1237 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7540 : (TARGET_64BIT))
7541 : {
7542 : *pnum_clobbers = 2;
7543 : return 1367; /* ix86_rotrti3_doubleword */
7544 : }
7545 : x4 = XEXP (x3, 1);
7546 : if (XWINT (x4, 0) == 64L
7547 : && register_operand (operands[0], E_TImode)
7548 : && GET_MODE (x3) == E_TImode
7549 : && register_operand (operands[1], E_TImode)
7550 : &&
7551 : #line 18805 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7552 : (TARGET_64BIT))
7553 : return 1371; /* rotr64ti2_doubleword */
7554 : break;
7555 :
7556 : default:
7557 : break;
7558 : }
7559 : x4 = XEXP (x3, 1);
7560 : operands[2] = x4;
7561 : switch (pattern269 (x1, pnum_clobbers))
7562 : {
7563 : case 0:
7564 : if (
7565 : #line 19019 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7566 : (ix86_binary_operator_ok (ROTATERT, QImode, operands, TARGET_APX_NDD)
7567 : && TARGET_APX_NF))
7568 : return 1407; /* *rotrqi3_1_nf */
7569 : if (pnum_clobbers == NULL
7570 : || !
7571 : #line 19019 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7572 : (ix86_binary_operator_ok (ROTATERT, QImode, operands, TARGET_APX_NDD)
7573 : && true))
7574 : return -1;
7575 : *pnum_clobbers = 1;
7576 : return 1408; /* *rotrqi3_1 */
7577 :
7578 : case 1:
7579 : if (
7580 : #line 19019 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7581 : (ix86_binary_operator_ok (ROTATERT, HImode, operands, TARGET_APX_NDD)
7582 : && TARGET_APX_NF))
7583 : return 1411; /* *rotrhi3_1_nf */
7584 : if (pnum_clobbers == NULL
7585 : || !
7586 : #line 19019 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7587 : (ix86_binary_operator_ok (ROTATERT, HImode, operands, TARGET_APX_NDD)
7588 : && true))
7589 : return -1;
7590 : *pnum_clobbers = 1;
7591 : return 1412; /* *rotrhi3_1 */
7592 :
7593 : case 2:
7594 : if (!
7595 : #line 19050 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7596 : (!TARGET_PARTIAL_REG_STALL || optimize_function_for_size_p (cfun)))
7597 : return -1;
7598 : *pnum_clobbers = 1;
7599 : return 1414; /* *rotrqi3_1_slp */
7600 :
7601 : case 3:
7602 : if (!
7603 : #line 19050 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7604 : (!TARGET_PARTIAL_REG_STALL || optimize_function_for_size_p (cfun)))
7605 : return -1;
7606 : *pnum_clobbers = 1;
7607 : return 1416; /* *rotrhi3_1_slp */
7608 :
7609 : default:
7610 : return -1;
7611 : }
7612 :
7613 : default:
7614 : return -1;
7615 : }
7616 : }
7617 :
7618 : int
7619 : recog_58 (rtx x1 ATTRIBUTE_UNUSED,
7620 : rtx_insn *insn ATTRIBUTE_UNUSED,
7621 : int *pnum_clobbers ATTRIBUTE_UNUSED)
7622 : {
7623 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
7624 : rtx x2, x3, x4;
7625 : int res ATTRIBUTE_UNUSED;
7626 : x2 = XEXP (x1, 0);
7627 : switch (GET_CODE (x2))
7628 : {
7629 : case REG:
7630 : case SUBREG:
7631 : case MEM:
7632 : operands[0] = x2;
7633 : switch (GET_MODE (operands[0]))
7634 : {
7635 : case E_TImode:
7636 : x3 = XEXP (x1, 1);
7637 : if (pattern79 (x3, pnum_clobbers) != 0
7638 : || !(
7639 : #line 8102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7640 : (ix86_binary_operator_ok (MINUS, DImode, operands, TARGET_APX_NDD)) &&
7641 : #line 1237 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7642 : (TARGET_64BIT)))
7643 : return -1;
7644 : *pnum_clobbers = 1;
7645 : return 385; /* *subti3_doubleword */
7646 :
7647 : case E_QImode:
7648 : x3 = XEXP (x1, 1);
7649 : if (pattern80 (x3,
7650 : E_QImode) != 0)
7651 : return -1;
7652 : if (
7653 : #line 8158 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7654 : (ix86_binary_operator_ok (MINUS, QImode, operands, TARGET_APX_NDD)
7655 : && TARGET_APX_NF))
7656 : return 388; /* *subqi_1_nf */
7657 : if (pnum_clobbers == NULL
7658 : || !
7659 : #line 8158 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7660 : (ix86_binary_operator_ok (MINUS, QImode, operands, TARGET_APX_NDD)
7661 : && true))
7662 : return -1;
7663 : *pnum_clobbers = 1;
7664 : return 389; /* *subqi_1 */
7665 :
7666 : case E_HImode:
7667 : x3 = XEXP (x1, 1);
7668 : if (pattern80 (x3,
7669 : E_HImode) != 0)
7670 : return -1;
7671 : if (
7672 : #line 8158 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7673 : (ix86_binary_operator_ok (MINUS, HImode, operands, TARGET_APX_NDD)
7674 : && TARGET_APX_NF))
7675 : return 390; /* *subhi_1_nf */
7676 : if (pnum_clobbers == NULL
7677 : || !
7678 : #line 8158 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7679 : (ix86_binary_operator_ok (MINUS, HImode, operands, TARGET_APX_NDD)
7680 : && true))
7681 : return -1;
7682 : *pnum_clobbers = 1;
7683 : return 391; /* *subhi_1 */
7684 :
7685 : case E_HFmode:
7686 : x3 = XEXP (x1, 1);
7687 : if (pattern3 (x3,
7688 : E_HFmode) != 0
7689 : || !
7690 : #line 23833 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7691 : (TARGET_AVX512FP16
7692 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
7693 : return -1;
7694 : return 1711; /* *subhf */
7695 :
7696 : case E_V8QImode:
7697 : x3 = XEXP (x1, 1);
7698 : if (pattern6 (x3,
7699 : E_V8QImode) != 0
7700 : || !
7701 : #line 3239 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
7702 : ((TARGET_MMX || TARGET_MMX_WITH_SSE)
7703 : && ix86_binary_operator_ok (MINUS, V8QImode, operands)))
7704 : return -1;
7705 : return 2181; /* *mmx_subv8qi3 */
7706 :
7707 : case E_V4HImode:
7708 : x3 = XEXP (x1, 1);
7709 : if (pattern6 (x3,
7710 : E_V4HImode) != 0
7711 : || !
7712 : #line 3239 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
7713 : ((TARGET_MMX || TARGET_MMX_WITH_SSE)
7714 : && ix86_binary_operator_ok (MINUS, V4HImode, operands)))
7715 : return -1;
7716 : return 2183; /* *mmx_subv4hi3 */
7717 :
7718 : case E_V2SImode:
7719 : x3 = XEXP (x1, 1);
7720 : if (pattern6 (x3,
7721 : E_V2SImode) != 0
7722 : || !
7723 : #line 3239 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
7724 : ((TARGET_MMX || TARGET_MMX_WITH_SSE)
7725 : && ix86_binary_operator_ok (MINUS, V2SImode, operands)))
7726 : return -1;
7727 : return 2185; /* *mmx_subv2si3 */
7728 :
7729 : case E_V1DImode:
7730 : x3 = XEXP (x1, 1);
7731 : if (pattern6 (x3,
7732 : E_V1DImode) != 0
7733 : || !(
7734 : #line 3239 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
7735 : ((TARGET_MMX || TARGET_MMX_WITH_SSE)
7736 : && ix86_binary_operator_ok (MINUS, V1DImode, operands)) &&
7737 : #line 50 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
7738 : (TARGET_SSE2)))
7739 : return -1;
7740 : return 2187; /* *mmx_subv1di3 */
7741 :
7742 : case E_V4QImode:
7743 : x3 = XEXP (x1, 1);
7744 : if (pattern5 (x3,
7745 : E_V4QImode) != 0
7746 : || !
7747 : #line 3255 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
7748 : (TARGET_SSE2))
7749 : return -1;
7750 : return 2189; /* subv4qi3 */
7751 :
7752 : case E_V2HImode:
7753 : x3 = XEXP (x1, 1);
7754 : if (pattern5 (x3,
7755 : E_V2HImode) != 0
7756 : || !
7757 : #line 3255 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
7758 : (TARGET_SSE2))
7759 : return -1;
7760 : return 2191; /* subv2hi3 */
7761 :
7762 : case E_V2QImode:
7763 : if (pnum_clobbers == NULL)
7764 : return -1;
7765 : x3 = XEXP (x1, 1);
7766 : if (pattern5 (x3,
7767 : E_V2QImode) != 0
7768 : || !
7769 : #line 3269 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
7770 : (!TARGET_PARTIAL_REG_STALL || optimize_size || TARGET_SSE2))
7771 : return -1;
7772 : *pnum_clobbers = 1;
7773 : return 2193; /* subv2qi3 */
7774 :
7775 : default:
7776 : return -1;
7777 : }
7778 :
7779 : case STRICT_LOW_PART:
7780 : if (pnum_clobbers == NULL)
7781 : return -1;
7782 : x4 = XEXP (x2, 0);
7783 : operands[0] = x4;
7784 : switch (GET_MODE (operands[0]))
7785 : {
7786 : case E_QImode:
7787 : x3 = XEXP (x1, 1);
7788 : if (pattern1091 (x3,
7789 : E_QImode) != 0
7790 : || !
7791 : #line 8222 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7792 : (!TARGET_PARTIAL_REG_STALL || optimize_function_for_size_p (cfun)))
7793 : return -1;
7794 : *pnum_clobbers = 1;
7795 : return 407; /* *subqi_1_slp */
7796 :
7797 : case E_HImode:
7798 : x3 = XEXP (x1, 1);
7799 : if (pattern1091 (x3,
7800 : E_HImode) != 0
7801 : || !
7802 : #line 8222 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7803 : (!TARGET_PARTIAL_REG_STALL || optimize_function_for_size_p (cfun)))
7804 : return -1;
7805 : *pnum_clobbers = 1;
7806 : return 408; /* *subhi_1_slp */
7807 :
7808 : default:
7809 : return -1;
7810 : }
7811 :
7812 : default:
7813 : return -1;
7814 : }
7815 : }
7816 :
7817 : int
7818 : recog_66 (rtx x1 ATTRIBUTE_UNUSED,
7819 : rtx_insn *insn ATTRIBUTE_UNUSED,
7820 : int *pnum_clobbers ATTRIBUTE_UNUSED)
7821 : {
7822 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
7823 : rtx x2, x3, x4, x5, x6;
7824 : int res ATTRIBUTE_UNUSED;
7825 : x2 = XEXP (x1, 1);
7826 : x3 = XEXP (x2, 0);
7827 : operands[1] = x3;
7828 : x4 = XEXP (x2, 1);
7829 : switch (XVECLEN (x4, 0))
7830 : {
7831 : case 2:
7832 : x5 = XVECEXP (x4, 0, 0);
7833 : if (GET_CODE (x5) != CONST_INT)
7834 : return -1;
7835 : x6 = XVECEXP (x4, 0, 1);
7836 : if (GET_CODE (x6) == CONST_INT
7837 : && GET_MODE (x2) == E_V2SFmode)
7838 : {
7839 : switch (XWINT (x5, 0))
7840 : {
7841 : case 1L:
7842 : if (register_operand (operands[0], E_V2SFmode))
7843 : {
7844 : switch (XWINT (x6, 0))
7845 : {
7846 : case 0L:
7847 : if (register_mmxmem_operand (operands[1], E_V2SFmode)
7848 : &&
7849 : #line 1664 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
7850 : (TARGET_3DNOW_A || TARGET_MMX_WITH_SSE))
7851 : return 2140; /* mmx_pswapdv2sf2 */
7852 : break;
7853 :
7854 : case 1L:
7855 : if (register_operand (operands[1], E_V2SFmode)
7856 : &&
7857 : #line 1680 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
7858 : (TARGET_MMX_WITH_SSE))
7859 : return 2141; /* *mmx_movshdup */
7860 : break;
7861 :
7862 : default:
7863 : break;
7864 : }
7865 : }
7866 : break;
7867 :
7868 : case 0L:
7869 : switch (XWINT (x6, 0))
7870 : {
7871 : case 0L:
7872 : if (register_operand (operands[0], E_V2SFmode)
7873 : && register_operand (operands[1], E_V2SFmode)
7874 : &&
7875 : #line 1696 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
7876 : (TARGET_MMX_WITH_SSE))
7877 : return 2142; /* *mmx_movsldup */
7878 : break;
7879 :
7880 : case 1L:
7881 : if (nonimmediate_operand (operands[0], E_V2SFmode)
7882 : && nonimmediate_operand (operands[1], E_V4SFmode)
7883 : &&
7884 : #line 11968 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7885 : (TARGET_SSE && !(MEM_P (operands[0]) && MEM_P (operands[1]))))
7886 : return 5290; /* sse_storelps */
7887 : break;
7888 :
7889 : default:
7890 : break;
7891 : }
7892 : break;
7893 :
7894 : case 2L:
7895 : if (XWINT (x6, 0) == 3L
7896 : && nonimmediate_operand (operands[0], E_V2SFmode)
7897 : && nonimmediate_operand (operands[1], E_V4SFmode)
7898 : &&
7899 : #line 11915 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7900 : (TARGET_SSE && !(MEM_P (operands[0]) && MEM_P (operands[1]))))
7901 : return 5288; /* sse_storehps */
7902 : break;
7903 :
7904 : default:
7905 : break;
7906 : }
7907 : }
7908 : operands[2] = x5;
7909 : if (const_0_to_1_operand (operands[2], E_VOIDmode))
7910 : {
7911 : operands[3] = x6;
7912 : if (const_0_to_1_operand (operands[3], E_VOIDmode))
7913 : {
7914 : switch (GET_MODE (operands[0]))
7915 : {
7916 : case E_V2SImode:
7917 : if (register_operand (operands[0], E_V2SImode)
7918 : && GET_MODE (x2) == E_V2SImode
7919 : && register_operand (operands[1], E_V2SImode)
7920 : &&
7921 : #line 5603 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
7922 : (TARGET_MMX_WITH_SSE))
7923 : return 2391; /* *mmx_pshufd_1 */
7924 : break;
7925 :
7926 : case E_V2HFmode:
7927 : if (register_operand (operands[0], E_V2HFmode)
7928 : && GET_MODE (x2) == E_V2HFmode
7929 : && register_operand (operands[1], E_V2HFmode)
7930 : &&
7931 : #line 6264 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
7932 : (TARGET_SSE2))
7933 : return 2427; /* *pshufwv2hf_1 */
7934 : break;
7935 :
7936 : case E_V2BFmode:
7937 : if (register_operand (operands[0], E_V2BFmode)
7938 : && GET_MODE (x2) == E_V2BFmode
7939 : && register_operand (operands[1], E_V2BFmode)
7940 : &&
7941 : #line 6264 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
7942 : (TARGET_SSE2))
7943 : return 2428; /* *pshufwv2bf_1 */
7944 : break;
7945 :
7946 : case E_V2HImode:
7947 : if (register_operand (operands[0], E_V2HImode)
7948 : && GET_MODE (x2) == E_V2HImode
7949 : && register_operand (operands[1], E_V2HImode)
7950 : &&
7951 : #line 6264 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
7952 : (TARGET_SSE2))
7953 : return 2429; /* *pshufwv2hi_1 */
7954 : break;
7955 :
7956 : default:
7957 : break;
7958 : }
7959 : }
7960 : }
7961 : if (XWINT (x5, 0) != 1L
7962 : || x6 != const_int_rtx[MAX_SAVED_CONST_INT + 0]
7963 : || !register_operand (operands[0], E_V2SImode)
7964 : || GET_MODE (x2) != E_V2SImode
7965 : || !register_mmxmem_operand (operands[1], E_V2SImode)
7966 : || !
7967 : #line 5671 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
7968 : (TARGET_3DNOW_A))
7969 : return -1;
7970 : return 2398; /* mmx_pswapdv2si2 */
7971 :
7972 : case 1:
7973 : x5 = XVECEXP (x4, 0, 0);
7974 : if (GET_CODE (x5) != CONST_INT)
7975 : return -1;
7976 : switch (XWINT (x5, 0))
7977 : {
7978 : case 0L:
7979 : switch (GET_MODE (operands[0]))
7980 : {
7981 : case E_SFmode:
7982 : switch (pattern977 (x2))
7983 : {
7984 : case 0:
7985 : if (
7986 : #line 1806 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
7987 : ((TARGET_MMX || TARGET_MMX_WITH_SSE)
7988 : && !(MEM_P (operands[0]) && MEM_P (operands[1]))))
7989 : return 2149; /* *vec_extractv2sf_0 */
7990 : break;
7991 :
7992 : case 1:
7993 : if (
7994 : #line 12652 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7995 : (TARGET_SSE && !(MEM_P (operands[0]) && MEM_P (operands[1]))))
7996 : return 5346; /* *vec_extractv4sf_0 */
7997 : break;
7998 :
7999 : default:
8000 : break;
8001 : }
8002 : break;
8003 :
8004 : case E_HFmode:
8005 : switch (pattern978 (x2))
8006 : {
8007 : case 0:
8008 : if (
8009 : #line 13557 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8010 : (TARGET_AVX512F && !(MEM_P (operands[0]) && MEM_P (operands[1]))))
8011 : return 5405; /* *vec_extractv32hf_0 */
8012 : break;
8013 :
8014 : case 1:
8015 : if (
8016 : #line 13557 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8017 : (TARGET_AVX512F && !(MEM_P (operands[0]) && MEM_P (operands[1]))))
8018 : return 5406; /* *vec_extractv16hf_0 */
8019 : break;
8020 :
8021 : case 2:
8022 : if (
8023 : #line 13557 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8024 : (TARGET_AVX512F && !(MEM_P (operands[0]) && MEM_P (operands[1]))))
8025 : return 5407; /* *vec_extractv8hf_0 */
8026 : break;
8027 :
8028 : default:
8029 : break;
8030 : }
8031 : break;
8032 :
8033 : case E_BFmode:
8034 : switch (pattern979 (x2))
8035 : {
8036 : case 0:
8037 : if (
8038 : #line 13557 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8039 : (TARGET_AVX512F && !(MEM_P (operands[0]) && MEM_P (operands[1]))))
8040 : return 5408; /* *vec_extractv32bf_0 */
8041 : break;
8042 :
8043 : case 1:
8044 : if (
8045 : #line 13557 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8046 : (TARGET_AVX512F && !(MEM_P (operands[0]) && MEM_P (operands[1]))))
8047 : return 5409; /* *vec_extractv16bf_0 */
8048 : break;
8049 :
8050 : case 2:
8051 : if (
8052 : #line 13557 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8053 : (TARGET_AVX512F && !(MEM_P (operands[0]) && MEM_P (operands[1]))))
8054 : return 5410; /* *vec_extractv8bf_0 */
8055 : break;
8056 :
8057 : default:
8058 : break;
8059 : }
8060 : break;
8061 :
8062 : case E_DFmode:
8063 : if (nonimmediate_operand (operands[0], E_DFmode)
8064 : && GET_MODE (x2) == E_DFmode
8065 : && nonimmediate_operand (operands[1], E_V2DFmode))
8066 : {
8067 : if (
8068 : #line 14975 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8069 : (TARGET_SSE2 && !(MEM_P (operands[0]) && MEM_P (operands[1]))))
8070 : return 7248; /* sse2_storelpd */
8071 : if (
8072 : #line 15004 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8073 : (!TARGET_SSE2 && TARGET_SSE
8074 : && !(MEM_P (operands[0]) && MEM_P (operands[1]))))
8075 : return 7249; /* *vec_extractv2df_0_sse */
8076 : }
8077 : break;
8078 :
8079 : case E_QImode:
8080 : if (memory_operand (operands[0], E_QImode)
8081 : && GET_MODE (x2) == E_QImode
8082 : && register_operand (operands[1], E_V16QImode)
8083 : && (
8084 : #line 21404 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8085 : (TARGET_SSE2
8086 : && !TARGET_SSE4_1
8087 : && (TARGET_INTER_UNIT_MOVES_FROM_VEC
8088 : || optimize_function_for_speed_p (cfun))
8089 : && ix86_pre_reload_split ()) &&
8090 : #line 21397 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8091 : (TARGET_SSE4_1)))
8092 : return 8500; /* *vec_extractv16qi_0_mem */
8093 : break;
8094 :
8095 : case E_HImode:
8096 : if (memory_operand (operands[0], E_HImode)
8097 : && GET_MODE (x2) == E_HImode
8098 : && register_operand (operands[1], E_V8HImode)
8099 : &&
8100 : #line 21404 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8101 : (TARGET_SSE2
8102 : && !TARGET_SSE4_1
8103 : && (TARGET_INTER_UNIT_MOVES_FROM_VEC
8104 : || optimize_function_for_speed_p (cfun))
8105 : && ix86_pre_reload_split ()))
8106 : return 8501; /* *vec_extractv8hi_0_mem */
8107 : break;
8108 :
8109 : default:
8110 : break;
8111 : }
8112 : break;
8113 :
8114 : case 1L:
8115 : switch (GET_MODE (operands[0]))
8116 : {
8117 : case E_SFmode:
8118 : if (nonimmediate_operand (operands[0], E_SFmode)
8119 : && GET_MODE (x2) == E_SFmode
8120 : && nonimmediate_operand (operands[1], E_V2SFmode)
8121 : &&
8122 : #line 1821 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
8123 : ((TARGET_MMX || TARGET_MMX_WITH_SSE)
8124 : && !(MEM_P (operands[0]) && MEM_P (operands[1]))))
8125 : return 2150; /* *vec_extractv2sf_1 */
8126 : break;
8127 :
8128 : case E_DFmode:
8129 : if (nonimmediate_operand (operands[0], E_DFmode)
8130 : && GET_MODE (x2) == E_DFmode
8131 : && nonimmediate_operand (operands[1], E_V2DFmode))
8132 : {
8133 : if (
8134 : #line 14918 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8135 : (TARGET_SSE2 && !(MEM_P (operands[0]) && MEM_P (operands[1]))))
8136 : return 7246; /* sse2_storehpd */
8137 : if (
8138 : #line 14951 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8139 : (!TARGET_SSE2 && TARGET_SSE
8140 : && !(MEM_P (operands[0]) && MEM_P (operands[1]))))
8141 : return 7247; /* *vec_extractv2df_1_sse */
8142 : }
8143 : break;
8144 :
8145 : default:
8146 : break;
8147 : }
8148 : break;
8149 :
8150 : default:
8151 : break;
8152 : }
8153 : operands[2] = x5;
8154 : switch (GET_MODE (operands[0]))
8155 : {
8156 : case E_HImode:
8157 : if (GET_MODE (x2) != E_HImode)
8158 : return -1;
8159 : if (register_sse4nonimm_operand (operands[0], E_HImode))
8160 : {
8161 : switch (GET_MODE (operands[1]))
8162 : {
8163 : case E_V4HImode:
8164 : if (register_operand (operands[1], E_V4HImode)
8165 : && const_0_to_3_operand (operands[2], E_SImode)
8166 : &&
8167 : #line 5409 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
8168 : ((TARGET_MMX || TARGET_MMX_WITH_SSE)
8169 : && (TARGET_SSE || TARGET_3DNOW_A)))
8170 : return 2377; /* *mmx_pextrw */
8171 : break;
8172 :
8173 : case E_V2HImode:
8174 : if (register_operand (operands[1], E_V2HImode)
8175 : && const_0_to_1_operand (operands[2], E_SImode)
8176 : &&
8177 : #line 6075 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
8178 : (TARGET_SSE2))
8179 : return 2415; /* *pextrw */
8180 : break;
8181 :
8182 : case E_V8HImode:
8183 : if (register_operand (operands[1], E_V8HImode)
8184 : && const_0_to_7_operand (operands[2], E_SImode)
8185 : &&
8186 : #line 21428 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8187 : (TARGET_SSE2))
8188 : return 8503; /* *vec_extractv8hi */
8189 : break;
8190 :
8191 : default:
8192 : break;
8193 : }
8194 : }
8195 : if (!register_operand (operands[0], E_HImode)
8196 : || !memory_operand (operands[1], E_V8HImode)
8197 : || !const_0_to_7_operand (operands[2], E_VOIDmode)
8198 : || !
8199 : #line 21489 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8200 : (TARGET_SSE))
8201 : return -1;
8202 : return 8510; /* *vec_extractv8hi_mem */
8203 :
8204 : case E_HFmode:
8205 : if (!register_sse4nonimm_operand (operands[0], E_HFmode)
8206 : || GET_MODE (x2) != E_HFmode)
8207 : return -1;
8208 : switch (GET_MODE (operands[1]))
8209 : {
8210 : case E_V4HFmode:
8211 : if (!register_operand (operands[1], E_V4HFmode)
8212 : || !const_0_to_3_operand (operands[2], E_SImode)
8213 : || !
8214 : #line 5429 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
8215 : ((TARGET_MMX || TARGET_MMX_WITH_SSE)
8216 : && (TARGET_SSE || TARGET_3DNOW_A)))
8217 : return -1;
8218 : return 2378; /* *mmx_pextrwv4hf */
8219 :
8220 : case E_V2HFmode:
8221 : if (!register_operand (operands[1], E_V2HFmode)
8222 : || !const_0_to_1_operand (operands[2], E_SImode)
8223 : || !
8224 : #line 6092 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
8225 : (TARGET_SSE2))
8226 : return -1;
8227 : return 2416; /* *pextrwv2hf */
8228 :
8229 : case E_V8HFmode:
8230 : if (!register_operand (operands[1], E_V8HFmode)
8231 : || !const_0_to_7_operand (operands[2], E_SImode)
8232 : || !
8233 : #line 13569 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8234 : (TARGET_SSE2))
8235 : return -1;
8236 : return 5411; /* *vec_extracthf */
8237 :
8238 : default:
8239 : return -1;
8240 : }
8241 :
8242 : case E_BFmode:
8243 : if (!register_sse4nonimm_operand (operands[0], E_BFmode)
8244 : || GET_MODE (x2) != E_BFmode)
8245 : return -1;
8246 : switch (GET_MODE (operands[1]))
8247 : {
8248 : case E_V4BFmode:
8249 : if (!register_operand (operands[1], E_V4BFmode)
8250 : || !const_0_to_3_operand (operands[2], E_SImode)
8251 : || !
8252 : #line 5429 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
8253 : ((TARGET_MMX || TARGET_MMX_WITH_SSE)
8254 : && (TARGET_SSE || TARGET_3DNOW_A)))
8255 : return -1;
8256 : return 2379; /* *mmx_pextrwv4bf */
8257 :
8258 : case E_V2BFmode:
8259 : if (!register_operand (operands[1], E_V2BFmode)
8260 : || !const_0_to_1_operand (operands[2], E_SImode)
8261 : || !
8262 : #line 6092 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
8263 : (TARGET_SSE2))
8264 : return -1;
8265 : return 2417; /* *pextrwv2bf */
8266 :
8267 : case E_V8BFmode:
8268 : if (!register_operand (operands[1], E_V8BFmode)
8269 : || !const_0_to_7_operand (operands[2], E_SImode)
8270 : || !
8271 : #line 13569 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8272 : (TARGET_SSE2))
8273 : return -1;
8274 : return 5412; /* *vec_extractbf */
8275 :
8276 : default:
8277 : return -1;
8278 : }
8279 :
8280 : case E_QImode:
8281 : if (GET_MODE (x2) != E_QImode)
8282 : return -1;
8283 : if (nonimmediate_operand (operands[0], E_QImode))
8284 : {
8285 : switch (GET_MODE (operands[1]))
8286 : {
8287 : case E_V8QImode:
8288 : if (register_operand (operands[1], E_V8QImode)
8289 : && const_0_to_7_operand (operands[2], E_SImode)
8290 : &&
8291 : #line 5482 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
8292 : (TARGET_SSE4_1 && TARGET_MMX_WITH_SSE))
8293 : return 2382; /* *mmx_pextrb */
8294 : break;
8295 :
8296 : case E_V4QImode:
8297 : if (register_operand (operands[1], E_V4QImode)
8298 : && const_0_to_3_operand (operands[2], E_SImode)
8299 : &&
8300 : #line 6138 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
8301 : (TARGET_SSE4_1))
8302 : return 2420; /* *pextrb */
8303 : break;
8304 :
8305 : default:
8306 : break;
8307 : }
8308 : }
8309 : if (register_sse4nonimm_operand (operands[0], E_QImode)
8310 : && register_operand (operands[1], E_V16QImode)
8311 : && const_0_to_15_operand (operands[2], E_SImode)
8312 : && (
8313 : #line 21428 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8314 : (TARGET_SSE2) &&
8315 : #line 21397 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8316 : (TARGET_SSE4_1)))
8317 : return 8502; /* *vec_extractv16qi */
8318 : if (!register_operand (operands[0], E_QImode)
8319 : || !memory_operand (operands[1], E_V16QImode)
8320 : || !const_0_to_15_operand (operands[2], E_VOIDmode)
8321 : || !
8322 : #line 21489 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8323 : (TARGET_SSE))
8324 : return -1;
8325 : return 8509; /* *vec_extractv16qi_mem */
8326 :
8327 : case E_SFmode:
8328 : if (GET_MODE (x2) != E_SFmode)
8329 : return -1;
8330 : if (nonimmediate_operand (operands[0], E_SFmode)
8331 : && register_operand (operands[1], E_V4SFmode)
8332 : && const_0_to_3_operand (operands[2], E_SImode)
8333 : &&
8334 : #line 12663 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8335 : (TARGET_SSE4_1))
8336 : return 5347; /* *sse4_1_extractps */
8337 : if (!register_operand (operands[0], E_SFmode))
8338 : return -1;
8339 : switch (GET_MODE (operands[1]))
8340 : {
8341 : case E_V4SFmode:
8342 : if (!memory_operand (operands[1], E_V4SFmode)
8343 : || !const_0_to_3_operand (operands[2], E_VOIDmode)
8344 : || !
8345 : #line 12706 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8346 : (TARGET_SSE))
8347 : return -1;
8348 : return 5348; /* *vec_extractv4sf_mem */
8349 :
8350 : case E_V16SFmode:
8351 : if (!register_operand (operands[1], E_V16SFmode)
8352 : || !const_0_to_15_operand (operands[2], E_VOIDmode)
8353 : || !
8354 : #line 14397 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8355 : (TARGET_AVX512F
8356 : && INTVAL(operands[2]) * GET_MODE_SIZE (SFmode) >= 16))
8357 : return -1;
8358 : return 7119; /* *vec_extractv16sfsf_valign */
8359 :
8360 : case E_V8SFmode:
8361 : if (!register_operand (operands[1], E_V8SFmode)
8362 : || !const_0_to_7_operand (operands[2], E_VOIDmode)
8363 : || !(
8364 : #line 14397 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8365 : (TARGET_AVX512F
8366 : && INTVAL(operands[2]) * GET_MODE_SIZE (SFmode) >= 16) &&
8367 : #line 307 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8368 : (TARGET_AVX512VL)))
8369 : return -1;
8370 : return 7120; /* *vec_extractv8sfsf_valign */
8371 :
8372 : default:
8373 : return -1;
8374 : }
8375 :
8376 : case E_DFmode:
8377 : if (!register_operand (operands[0], E_DFmode)
8378 : || GET_MODE (x2) != E_DFmode)
8379 : return -1;
8380 : switch (GET_MODE (operands[1]))
8381 : {
8382 : case E_V8DFmode:
8383 : if (!register_operand (operands[1], E_V8DFmode)
8384 : || !const_0_to_7_operand (operands[2], E_VOIDmode)
8385 : || !
8386 : #line 14397 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8387 : (TARGET_AVX512F
8388 : && INTVAL(operands[2]) * GET_MODE_SIZE (DFmode) >= 16))
8389 : return -1;
8390 : return 7121; /* *vec_extractv8dfdf_valign */
8391 :
8392 : case E_V4DFmode:
8393 : if (!register_operand (operands[1], E_V4DFmode)
8394 : || !const_0_to_3_operand (operands[2], E_VOIDmode)
8395 : || !(
8396 : #line 14397 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8397 : (TARGET_AVX512F
8398 : && INTVAL(operands[2]) * GET_MODE_SIZE (DFmode) >= 16) &&
8399 : #line 308 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8400 : (TARGET_AVX512VL)))
8401 : return -1;
8402 : return 7122; /* *vec_extractv4dfdf_valign */
8403 :
8404 : default:
8405 : return -1;
8406 : }
8407 :
8408 : case E_TImode:
8409 : if (!nonimmediate_operand (operands[0], E_TImode)
8410 : || GET_MODE (x2) != E_TImode)
8411 : return -1;
8412 : switch (GET_MODE (operands[1]))
8413 : {
8414 : case E_V2TImode:
8415 : if (!register_operand (operands[1], E_V2TImode)
8416 : || !const_0_to_1_operand (operands[2], E_SImode)
8417 : || !
8418 : #line 21745 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8419 : (TARGET_AVX))
8420 : return -1;
8421 : return 8521; /* *vec_extractv2ti */
8422 :
8423 : case E_V4TImode:
8424 : if (!register_operand (operands[1], E_V4TImode)
8425 : || !const_0_to_3_operand (operands[2], E_SImode)
8426 : || !
8427 : #line 21763 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8428 : (TARGET_AVX512F))
8429 : return -1;
8430 : return 8522; /* *vec_extractv4ti */
8431 :
8432 : default:
8433 : return -1;
8434 : }
8435 :
8436 : default:
8437 : return -1;
8438 : }
8439 :
8440 : case 4:
8441 : x5 = XVECEXP (x4, 0, 0);
8442 : operands[2] = x5;
8443 : if (pattern754 (x4) != 0)
8444 : return -1;
8445 : switch (GET_MODE (operands[0]))
8446 : {
8447 : case E_V4HFmode:
8448 : if (!register_operand (operands[0], E_V4HFmode)
8449 : || GET_MODE (x2) != E_V4HFmode
8450 : || !register_mmxmem_operand (operands[1], E_V4HFmode)
8451 : || !
8452 : #line 5571 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
8453 : ((TARGET_MMX || TARGET_MMX_WITH_SSE)
8454 : && (TARGET_SSE || TARGET_3DNOW_A)))
8455 : return -1;
8456 : return 2388; /* mmx_pshufwv4hf_1 */
8457 :
8458 : case E_V4BFmode:
8459 : if (!register_operand (operands[0], E_V4BFmode)
8460 : || GET_MODE (x2) != E_V4BFmode
8461 : || !register_mmxmem_operand (operands[1], E_V4BFmode)
8462 : || !
8463 : #line 5571 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
8464 : ((TARGET_MMX || TARGET_MMX_WITH_SSE)
8465 : && (TARGET_SSE || TARGET_3DNOW_A)))
8466 : return -1;
8467 : return 2389; /* mmx_pshufwv4bf_1 */
8468 :
8469 : case E_V4HImode:
8470 : if (!register_operand (operands[0], E_V4HImode)
8471 : || GET_MODE (x2) != E_V4HImode
8472 : || !register_mmxmem_operand (operands[1], E_V4HImode)
8473 : || !
8474 : #line 5571 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
8475 : ((TARGET_MMX || TARGET_MMX_WITH_SSE)
8476 : && (TARGET_SSE || TARGET_3DNOW_A)))
8477 : return -1;
8478 : return 2390; /* mmx_pshufwv4hi_1 */
8479 :
8480 : default:
8481 : return -1;
8482 : }
8483 :
8484 : default:
8485 : return -1;
8486 : }
8487 : }
8488 :
8489 : int
8490 : recog_86 (rtx x1 ATTRIBUTE_UNUSED,
8491 : rtx_insn *insn ATTRIBUTE_UNUSED,
8492 : int *pnum_clobbers ATTRIBUTE_UNUSED)
8493 : {
8494 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
8495 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
8496 : rtx x10, x11;
8497 : int res ATTRIBUTE_UNUSED;
8498 : x2 = XEXP (x1, 0);
8499 : operands[0] = x2;
8500 : x3 = XEXP (x1, 1);
8501 : x4 = XEXP (x3, 0);
8502 : switch (GET_CODE (x4))
8503 : {
8504 : case ASHIFT:
8505 : x5 = XEXP (x4, 0);
8506 : switch (GET_CODE (x5))
8507 : {
8508 : case REG:
8509 : case SUBREG:
8510 : operands[1] = x5;
8511 : x6 = XEXP (x4, 1);
8512 : operands[2] = x6;
8513 : x7 = XEXP (x3, 1);
8514 : switch (GET_CODE (x7))
8515 : {
8516 : case CONST_INT:
8517 : case CONST_WIDE_INT:
8518 : operands[3] = x7;
8519 : switch (GET_MODE (operands[0]))
8520 : {
8521 : case E_SImode:
8522 : if (pattern614 (x3,
8523 : E_SImode) != 0
8524 : || !
8525 : #line 8072 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8526 : ((unsigned HOST_WIDE_INT) INTVAL (operands[3])
8527 : < (HOST_WIDE_INT_1U << INTVAL (operands[2]))))
8528 : return -1;
8529 : return 381; /* *leasi_general_4 */
8530 :
8531 : case E_DImode:
8532 : if (GET_MODE (x3) != E_DImode
8533 : || GET_MODE (x4) != E_DImode)
8534 : return -1;
8535 : if (register_operand (operands[0], E_DImode)
8536 : && register_no_SP_operand (operands[1], E_DImode)
8537 : && const_0_to_3_operand (operands[2], E_VOIDmode)
8538 : && const_int_operand (operands[3], E_VOIDmode)
8539 : && (
8540 : #line 8072 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8541 : ((unsigned HOST_WIDE_INT) INTVAL (operands[3])
8542 : < (HOST_WIDE_INT_1U << INTVAL (operands[2]))) &&
8543 : #line 1168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8544 : (TARGET_64BIT)))
8545 : return 383; /* *leadi_general_4 */
8546 : if (!nonimmediate_operand (operands[0], E_DImode)
8547 : || !register_operand (operands[1], E_DImode)
8548 : || !const_int_operand (operands[2], E_QImode)
8549 : || !const_scalar_int_operand (operands[3], E_DImode)
8550 : || !(
8551 : #line 14473 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8552 : (INTVAL (operands[2]) == 8 * BITS_PER_UNIT / 2
8553 : && (DImode == DImode
8554 : ? CONST_INT_P (operands[3])
8555 : && (UINTVAL (operands[3]) & ~GET_MODE_MASK (SImode)) == 0
8556 : : CONST_INT_P (operands[3])
8557 : ? INTVAL (operands[3]) >= 0
8558 : : CONST_WIDE_INT_NUNITS (operands[3]) == 2
8559 : && CONST_WIDE_INT_ELT (operands[3], 1) == 0)
8560 : && !(CONST_INT_P (operands[3])
8561 : ? ix86_endbr_immediate_operand (operands[3], VOIDmode)
8562 : : ix86_endbr_immediate_operand (GEN_INT (CONST_WIDE_INT_ELT (operands[3],
8563 : 0)),
8564 : VOIDmode))) &&
8565 : #line 1196 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8566 : (!TARGET_64BIT)))
8567 : return -1;
8568 : return 962; /* *concatsidi3_5 */
8569 :
8570 : default:
8571 : return -1;
8572 : }
8573 :
8574 : case ZERO_EXTEND:
8575 : if (pattern616 (x3,
8576 : E_SImode,
8577 : E_DImode) != 0
8578 : || !(
8579 : #line 14396 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8580 : (INTVAL (operands[2]) == 4 * BITS_PER_UNIT) &&
8581 : #line 1236 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8582 : (!TARGET_64BIT)))
8583 : return -1;
8584 : return 926; /* *concatsidi3_1 */
8585 :
8586 : default:
8587 : return -1;
8588 : }
8589 :
8590 : case SIGN_EXTEND:
8591 : switch (pattern260 (x3,
8592 : E_SImode,
8593 : E_DImode))
8594 : {
8595 : case 0:
8596 : if (!(
8597 : #line 14432 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8598 : (INTVAL (operands[2]) == 4 * BITS_PER_UNIT) &&
8599 : #line 1236 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8600 : (!TARGET_64BIT)))
8601 : return -1;
8602 : return 938; /* *concatsidi3_3 */
8603 :
8604 : case 1:
8605 : if (!(
8606 : #line 14505 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8607 : (INTVAL (operands[2]) == 4 * BITS_PER_UNIT
8608 : && (DImode == DImode
8609 : ? CONST_INT_P (operands[3])
8610 : && (UINTVAL (operands[3]) & ~GET_MODE_MASK (SImode)) == 0
8611 : : CONST_INT_P (operands[3])
8612 : ? INTVAL (operands[3]) >= 0
8613 : : CONST_WIDE_INT_NUNITS (operands[3]) == 2
8614 : && CONST_WIDE_INT_ELT (operands[3], 1) == 0)
8615 : && !(CONST_INT_P (operands[3])
8616 : ? ix86_endbr_immediate_operand (operands[3], VOIDmode)
8617 : : ix86_endbr_immediate_operand (GEN_INT (CONST_WIDE_INT_ELT (operands[3],
8618 : 0)),
8619 : VOIDmode))) &&
8620 : #line 1236 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8621 : (!TARGET_64BIT)))
8622 : return -1;
8623 : return 968; /* *concatsidi3_6 */
8624 :
8625 : default:
8626 : return -1;
8627 : }
8628 :
8629 : case ZERO_EXTEND:
8630 : switch (pattern260 (x3,
8631 : E_SImode,
8632 : E_DImode))
8633 : {
8634 : case 0:
8635 : if (!(
8636 : #line 14432 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8637 : (INTVAL (operands[2]) == 4 * BITS_PER_UNIT) &&
8638 : #line 1236 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8639 : (!TARGET_64BIT)))
8640 : return -1;
8641 : return 941; /* *concatsidi3_3 */
8642 :
8643 : case 1:
8644 : if (!(
8645 : #line 14505 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8646 : (INTVAL (operands[2]) == 4 * BITS_PER_UNIT
8647 : && (DImode == DImode
8648 : ? CONST_INT_P (operands[3])
8649 : && (UINTVAL (operands[3]) & ~GET_MODE_MASK (SImode)) == 0
8650 : : CONST_INT_P (operands[3])
8651 : ? INTVAL (operands[3]) >= 0
8652 : : CONST_WIDE_INT_NUNITS (operands[3]) == 2
8653 : && CONST_WIDE_INT_ELT (operands[3], 1) == 0)
8654 : && !(CONST_INT_P (operands[3])
8655 : ? ix86_endbr_immediate_operand (operands[3], VOIDmode)
8656 : : ix86_endbr_immediate_operand (GEN_INT (CONST_WIDE_INT_ELT (operands[3],
8657 : 0)),
8658 : VOIDmode))) &&
8659 : #line 1236 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8660 : (!TARGET_64BIT)))
8661 : return -1;
8662 : return 971; /* *concatsidi3_6 */
8663 :
8664 : default:
8665 : return -1;
8666 : }
8667 :
8668 : case CONST_INT:
8669 : switch (pattern287 (x3, pnum_clobbers))
8670 : {
8671 : case 0:
8672 : x6 = XEXP (x4, 1);
8673 : operands[2] = x6;
8674 : if (register_operand (operands[2], E_QImode))
8675 : {
8676 : switch (pattern759 (x3))
8677 : {
8678 : case 0:
8679 : if (
8680 : #line 19165 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8681 : (TARGET_USE_BT))
8682 : {
8683 : *pnum_clobbers = 1;
8684 : return 1424; /* *btcsi */
8685 : }
8686 : break;
8687 :
8688 : case 1:
8689 : if ((
8690 : #line 19165 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8691 : (TARGET_USE_BT) &&
8692 : #line 1168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8693 : (TARGET_64BIT)))
8694 : {
8695 : *pnum_clobbers = 1;
8696 : return 1426; /* *btcdi */
8697 : }
8698 : break;
8699 :
8700 : default:
8701 : break;
8702 : }
8703 : }
8704 : if (GET_CODE (x6) != SUBREG)
8705 : return -1;
8706 : switch (pattern768 (x3))
8707 : {
8708 : case 0:
8709 : if (!
8710 : #line 19184 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8711 : (TARGET_USE_BT
8712 : && (INTVAL (operands[2]) & (GET_MODE_BITSIZE (SImode)-1))
8713 : == GET_MODE_BITSIZE (SImode)-1
8714 : && ix86_pre_reload_split ()))
8715 : return -1;
8716 : *pnum_clobbers = 1;
8717 : return 1428; /* *btcsi_mask */
8718 :
8719 : case 1:
8720 : if (!(
8721 : #line 19184 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8722 : (TARGET_USE_BT
8723 : && (INTVAL (operands[2]) & (GET_MODE_BITSIZE (DImode)-1))
8724 : == GET_MODE_BITSIZE (DImode)-1
8725 : && ix86_pre_reload_split ()) &&
8726 : #line 1168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8727 : (TARGET_64BIT)))
8728 : return -1;
8729 : *pnum_clobbers = 1;
8730 : return 1430; /* *btcdi_mask */
8731 :
8732 : default:
8733 : return -1;
8734 : }
8735 :
8736 : case 1:
8737 : if (!
8738 : #line 19212 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8739 : (TARGET_USE_BT
8740 : && (INTVAL (operands[2]) & (GET_MODE_BITSIZE (SImode)-1))
8741 : == GET_MODE_BITSIZE (SImode)-1
8742 : && ix86_pre_reload_split ()))
8743 : return -1;
8744 : *pnum_clobbers = 1;
8745 : return 1432; /* *btcsi_mask_1 */
8746 :
8747 : case 2:
8748 : if (!(
8749 : #line 19212 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8750 : (TARGET_USE_BT
8751 : && (INTVAL (operands[2]) & (GET_MODE_BITSIZE (DImode)-1))
8752 : == GET_MODE_BITSIZE (DImode)-1
8753 : && ix86_pre_reload_split ()) &&
8754 : #line 1168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8755 : (TARGET_64BIT)))
8756 : return -1;
8757 : *pnum_clobbers = 1;
8758 : return 1434; /* *btcdi_mask_1 */
8759 :
8760 : default:
8761 : return -1;
8762 : }
8763 :
8764 : default:
8765 : return -1;
8766 : }
8767 :
8768 : case REG:
8769 : case SUBREG:
8770 : case MEM:
8771 : operands[1] = x4;
8772 : x7 = XEXP (x3, 1);
8773 : operands[2] = x7;
8774 : switch (pattern439 (x3))
8775 : {
8776 : case 0:
8777 : if (pnum_clobbers != NULL
8778 : && x86_64_hilo_general_operand (operands[2], E_DImode)
8779 : && (
8780 : #line 13847 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8781 : (ix86_binary_operator_ok (XOR, DImode, operands, TARGET_APX_NDD)) &&
8782 : #line 1236 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8783 : (!TARGET_64BIT)))
8784 : {
8785 : *pnum_clobbers = 1;
8786 : return 848; /* *xordi3_doubleword */
8787 : }
8788 : if (x86_64_general_operand (operands[2], E_DImode))
8789 : {
8790 : if ((
8791 : #line 13905 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8792 : (ix86_binary_operator_ok (XOR, DImode, operands, TARGET_APX_NDD)
8793 : && TARGET_APX_NF) &&
8794 : #line 1165 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8795 : (TARGET_64BIT)))
8796 : return 861; /* *xordi_1_nf */
8797 : if (pnum_clobbers != NULL
8798 : && (
8799 : #line 13905 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8800 : (ix86_binary_operator_ok (XOR, DImode, operands, TARGET_APX_NDD)
8801 : && true) &&
8802 : #line 1165 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8803 : (TARGET_64BIT)))
8804 : {
8805 : *pnum_clobbers = 1;
8806 : return 862; /* *xordi_1 */
8807 : }
8808 : }
8809 : if (pnum_clobbers == NULL
8810 : || !const_int_operand (operands[2], E_DImode)
8811 : || !
8812 : #line 13975 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8813 : (TARGET_64BIT && TARGET_USE_BT
8814 : && ix86_binary_operator_ok (XOR, DImode, operands)
8815 : && IN_RANGE (exact_log2 (INTVAL (operands[2])), 31, 63)))
8816 : return -1;
8817 : *pnum_clobbers = 1;
8818 : return 867; /* *xordi_1_btc */
8819 :
8820 : case 1:
8821 : if (
8822 : #line 13905 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8823 : (ix86_binary_operator_ok (XOR, SImode, operands, TARGET_APX_NDD)
8824 : && TARGET_APX_NF))
8825 : return 857; /* *xorsi_1_nf */
8826 : if (pnum_clobbers == NULL
8827 : || !
8828 : #line 13905 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8829 : (ix86_binary_operator_ok (XOR, SImode, operands, TARGET_APX_NDD)
8830 : && true))
8831 : return -1;
8832 : *pnum_clobbers = 1;
8833 : return 858; /* *xorsi_1 */
8834 :
8835 : default:
8836 : return -1;
8837 : }
8838 :
8839 : case AND:
8840 : if (pnum_clobbers == NULL)
8841 : return -1;
8842 : x5 = XEXP (x4, 0);
8843 : if (GET_CODE (x5) != XOR)
8844 : return -1;
8845 : x8 = XEXP (x5, 0);
8846 : operands[1] = x8;
8847 : x9 = XEXP (x5, 1);
8848 : operands[2] = x9;
8849 : x6 = XEXP (x4, 1);
8850 : operands[3] = x6;
8851 : x7 = XEXP (x3, 1);
8852 : if (!rtx_equal_p (x7, operands[1]))
8853 : return -1;
8854 : switch (GET_MODE (operands[0]))
8855 : {
8856 : case E_SImode:
8857 : if (pattern1101 (x3,
8858 : E_SImode) != 0
8859 : || !
8860 : #line 14004 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8861 : (TARGET_BMI && ix86_pre_reload_split ()))
8862 : return -1;
8863 : *pnum_clobbers = 1;
8864 : return 869; /* *xor2andn */
8865 :
8866 : case E_DImode:
8867 : if (pattern1101 (x3,
8868 : E_DImode) != 0
8869 : || !(
8870 : #line 14004 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8871 : (TARGET_BMI && ix86_pre_reload_split ()) &&
8872 : #line 1165 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8873 : (TARGET_64BIT)))
8874 : return -1;
8875 : *pnum_clobbers = 1;
8876 : return 870; /* *xor2andn */
8877 :
8878 : default:
8879 : return -1;
8880 : }
8881 :
8882 : case ZERO_EXTEND:
8883 : if (GET_MODE (x4) != E_DImode
8884 : || GET_MODE (x3) != E_DImode)
8885 : return -1;
8886 : x5 = XEXP (x4, 0);
8887 : switch (GET_CODE (x5))
8888 : {
8889 : case REG:
8890 : case SUBREG:
8891 : case MEM:
8892 : switch (pattern443 (x3))
8893 : {
8894 : case 0:
8895 : if (pnum_clobbers != NULL)
8896 : {
8897 : x7 = XEXP (x3, 1);
8898 : operands[2] = x7;
8899 : if (x86_64_zext_immediate_operand (operands[2], E_DImode)
8900 : && register_operand (operands[0], E_DImode)
8901 : &&
8902 : #line 14082 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8903 : (TARGET_64BIT
8904 : && ix86_binary_operator_ok (XOR, SImode, operands, TARGET_APX_NDD)))
8905 : {
8906 : *pnum_clobbers = 1;
8907 : return 894; /* *xorsi_1_zext_imm */
8908 : }
8909 : }
8910 : x7 = XEXP (x3, 1);
8911 : operands[2] = x7;
8912 : if (!const_scalar_int_operand (operands[2], E_DImode)
8913 : || !nonimmediate_operand (operands[0], E_DImode)
8914 : || !(
8915 : #line 14534 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8916 : (DImode == DImode
8917 : ? CONST_INT_P (operands[2])
8918 : && (UINTVAL (operands[2]) & GET_MODE_MASK (SImode)) == 0
8919 : && !ix86_endbr_immediate_operand (operands[2], VOIDmode)
8920 : : CONST_WIDE_INT_P (operands[2])
8921 : && CONST_WIDE_INT_NUNITS (operands[2]) == 2
8922 : && CONST_WIDE_INT_ELT (operands[2], 0) == 0
8923 : && !ix86_endbr_immediate_operand (GEN_INT (CONST_WIDE_INT_ELT (operands[2],
8924 : 1)),
8925 : VOIDmode)) &&
8926 : #line 1236 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8927 : (!TARGET_64BIT)))
8928 : return -1;
8929 : return 980; /* *concatsidi3_7 */
8930 :
8931 : case 1:
8932 : if (!(
8933 : #line 14413 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8934 : (INTVAL (operands[3]) == 4 * BITS_PER_UNIT) &&
8935 : #line 1236 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8936 : (!TARGET_64BIT)))
8937 : return -1;
8938 : return 932; /* *concatsidi3_2 */
8939 :
8940 : case 2:
8941 : if (!(
8942 : #line 14457 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8943 : (INTVAL (operands[3]) == 4 * BITS_PER_UNIT) &&
8944 : #line 1236 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8945 : (!TARGET_64BIT)))
8946 : return -1;
8947 : return 950; /* *concatsidi3_4 */
8948 :
8949 : case 3:
8950 : if (!(
8951 : #line 14457 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8952 : (INTVAL (operands[3]) == 4 * BITS_PER_UNIT) &&
8953 : #line 1236 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8954 : (!TARGET_64BIT)))
8955 : return -1;
8956 : return 953; /* *concatsidi3_4 */
8957 :
8958 : default:
8959 : return -1;
8960 : }
8961 :
8962 : case MINUS:
8963 : if (pnum_clobbers == NULL
8964 : || pattern629 (x5) != 0)
8965 : return -1;
8966 : x7 = XEXP (x3, 1);
8967 : if (x7 != const_int_rtx[MAX_SAVED_CONST_INT + 63]
8968 : || !register_operand (operands[0], E_DImode))
8969 : return -1;
8970 : x9 = XEXP (x5, 1);
8971 : x10 = XEXP (x9, 0);
8972 : x11 = XEXP (x10, 0);
8973 : operands[1] = x11;
8974 : if (!nonimmediate_operand (operands[1], E_DImode)
8975 : || !
8976 : #line 21681 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8977 : (!TARGET_LZCNT && TARGET_64BIT && ix86_pre_reload_split ()))
8978 : return -1;
8979 : *pnum_clobbers = 1;
8980 : return 1563; /* *bsr_rex64u_2 */
8981 :
8982 : default:
8983 : return -1;
8984 : }
8985 :
8986 : case SIGN_EXTEND:
8987 : if (pnum_clobbers == NULL
8988 : || GET_MODE (x4) != E_DImode)
8989 : return -1;
8990 : x5 = XEXP (x4, 0);
8991 : if (GET_CODE (x5) != MINUS
8992 : || pattern629 (x5) != 0)
8993 : return -1;
8994 : x7 = XEXP (x3, 1);
8995 : if (x7 != const_int_rtx[MAX_SAVED_CONST_INT + 63]
8996 : || !register_operand (operands[0], E_DImode)
8997 : || GET_MODE (x3) != E_DImode)
8998 : return -1;
8999 : x9 = XEXP (x5, 1);
9000 : x10 = XEXP (x9, 0);
9001 : x11 = XEXP (x10, 0);
9002 : operands[1] = x11;
9003 : if (!nonimmediate_operand (operands[1], E_DImode)
9004 : || !
9005 : #line 21681 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9006 : (!TARGET_LZCNT && TARGET_64BIT && ix86_pre_reload_split ()))
9007 : return -1;
9008 : *pnum_clobbers = 1;
9009 : return 1562; /* *bsr_rex64_2 */
9010 :
9011 : case PLUS:
9012 : if (pnum_clobbers == NULL)
9013 : return -1;
9014 : x6 = XEXP (x4, 1);
9015 : if (GET_CODE (x6) != CONST_INT)
9016 : return -1;
9017 : x5 = XEXP (x4, 0);
9018 : operands[1] = x5;
9019 : x7 = XEXP (x3, 1);
9020 : if (!rtx_equal_p (x7, operands[1]))
9021 : return -1;
9022 : switch (XWINT (x6, 0))
9023 : {
9024 : case -1L:
9025 : switch (GET_MODE (operands[0]))
9026 : {
9027 : case E_SImode:
9028 : if (pattern762 (x3,
9029 : E_SImode) != 0
9030 : || !
9031 : #line 22237 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9032 : (TARGET_BMI))
9033 : return -1;
9034 : *pnum_clobbers = 1;
9035 : return 1612; /* *bmi_blsmsk_si */
9036 :
9037 : case E_DImode:
9038 : if (pattern762 (x3,
9039 : E_DImode) != 0
9040 : || !(
9041 : #line 22237 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9042 : (TARGET_BMI) &&
9043 : #line 1168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9044 : (TARGET_64BIT)))
9045 : return -1;
9046 : *pnum_clobbers = 1;
9047 : return 1613; /* *bmi_blsmsk_di */
9048 :
9049 : default:
9050 : return -1;
9051 : }
9052 :
9053 : case 1L:
9054 : switch (GET_MODE (operands[0]))
9055 : {
9056 : case E_SImode:
9057 : if (pattern762 (x3,
9058 : E_SImode) != 0
9059 : || !
9060 : #line 22583 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9061 : (TARGET_TBM))
9062 : return -1;
9063 : *pnum_clobbers = 1;
9064 : return 1646; /* *tbm_blcmsk_si */
9065 :
9066 : case E_DImode:
9067 : if (pattern762 (x3,
9068 : E_DImode) != 0
9069 : || !(
9070 : #line 22583 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9071 : (TARGET_TBM) &&
9072 : #line 1168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9073 : (TARGET_64BIT)))
9074 : return -1;
9075 : *pnum_clobbers = 1;
9076 : return 1647; /* *tbm_blcmsk_di */
9077 :
9078 : default:
9079 : return -1;
9080 : }
9081 :
9082 : default:
9083 : return -1;
9084 : }
9085 :
9086 : default:
9087 : return -1;
9088 : }
9089 : }
9090 :
9091 : int
9092 : recog_99 (rtx x1 ATTRIBUTE_UNUSED,
9093 : rtx_insn *insn ATTRIBUTE_UNUSED,
9094 : int *pnum_clobbers ATTRIBUTE_UNUSED)
9095 : {
9096 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
9097 : rtx x2;
9098 : int res ATTRIBUTE_UNUSED;
9099 : if (register_operand (operands[2], E_SImode)
9100 : && register_operand (operands[0], E_SImode))
9101 : {
9102 : x2 = XEXP (x1, 1);
9103 : if (GET_MODE (x2) == E_SImode
9104 : && nonimmediate_operand (operands[1], E_SImode)
9105 : &&
9106 : #line 16238 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9107 : (TARGET_BMI2))
9108 : return 1118; /* *bmi2_ashlsi3_1 */
9109 : }
9110 : switch (GET_MODE (operands[0]))
9111 : {
9112 : case E_DImode:
9113 : x2 = XEXP (x1, 1);
9114 : if (GET_MODE (x2) != E_DImode)
9115 : return -1;
9116 : if (register_operand (operands[0], E_DImode))
9117 : {
9118 : if (pnum_clobbers != NULL
9119 : && reg_or_pm1_operand (operands[1], E_DImode)
9120 : && nonmemory_operand (operands[2], E_QImode)
9121 : &&
9122 : #line 1196 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9123 : (!TARGET_64BIT))
9124 : {
9125 : *pnum_clobbers = 1;
9126 : return 1088; /* ashldi3_doubleword */
9127 : }
9128 : if (nonimmediate_operand (operands[1], E_DImode)
9129 : && register_operand (operands[2], E_DImode)
9130 : && (
9131 : #line 16238 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9132 : (TARGET_BMI2) &&
9133 : #line 1168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9134 : (TARGET_64BIT)))
9135 : return 1119; /* *bmi2_ashldi3_1 */
9136 : }
9137 : if (!nonimmediate_operand (operands[0], E_DImode)
9138 : || !nonimmediate_operand (operands[1], E_DImode)
9139 : || !nonmemory_operand (operands[2], E_QImode))
9140 : return -1;
9141 : if ((
9142 : #line 16247 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9143 : (ix86_binary_operator_ok (ASHIFT, DImode, operands, TARGET_APX_NDD)
9144 : && TARGET_APX_NF) &&
9145 : #line 1168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9146 : (TARGET_64BIT)))
9147 : return 1122; /* *ashldi3_1_nf */
9148 : if (pnum_clobbers == NULL
9149 : || !(
9150 : #line 16247 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9151 : (ix86_binary_operator_ok (ASHIFT, DImode, operands, TARGET_APX_NDD)
9152 : && true) &&
9153 : #line 1168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9154 : (TARGET_64BIT)))
9155 : return -1;
9156 : *pnum_clobbers = 1;
9157 : return 1123; /* *ashldi3_1 */
9158 :
9159 : case E_SImode:
9160 : x2 = XEXP (x1, 1);
9161 : if (pattern635 (x2,
9162 : E_SImode) != 0)
9163 : return -1;
9164 : if (
9165 : #line 16247 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9166 : (ix86_binary_operator_ok (ASHIFT, SImode, operands, TARGET_APX_NDD)
9167 : && TARGET_APX_NF))
9168 : return 1120; /* *ashlsi3_1_nf */
9169 : if (pnum_clobbers == NULL
9170 : || !
9171 : #line 16247 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9172 : (ix86_binary_operator_ok (ASHIFT, SImode, operands, TARGET_APX_NDD)
9173 : && true))
9174 : return -1;
9175 : *pnum_clobbers = 1;
9176 : return 1121; /* *ashlsi3_1 */
9177 :
9178 : default:
9179 : return -1;
9180 : }
9181 : }
9182 :
9183 : int
9184 : recog_106 (rtx x1 ATTRIBUTE_UNUSED,
9185 : rtx_insn *insn ATTRIBUTE_UNUSED,
9186 : int *pnum_clobbers ATTRIBUTE_UNUSED)
9187 : {
9188 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
9189 : rtx x2, x3;
9190 : int res ATTRIBUTE_UNUSED;
9191 : switch (pattern18 (x1, pnum_clobbers))
9192 : {
9193 : case 0:
9194 : if (!
9195 : #line 18532 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9196 : (ix86_binary_operator_ok (ROTATE, SImode, operands)
9197 : && (INTVAL (operands[3]) & (GET_MODE_BITSIZE (SImode)-1))
9198 : == GET_MODE_BITSIZE (SImode)-1
9199 : && ix86_pre_reload_split ()))
9200 : return -1;
9201 : *pnum_clobbers = 1;
9202 : return 1328; /* *rotlsi3_mask_1 */
9203 :
9204 : case 1:
9205 : if (!(
9206 : #line 18532 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9207 : (ix86_binary_operator_ok (ROTATE, DImode, operands)
9208 : && (INTVAL (operands[3]) & (GET_MODE_BITSIZE (DImode)-1))
9209 : == GET_MODE_BITSIZE (DImode)-1
9210 : && ix86_pre_reload_split ()) &&
9211 : #line 1162 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9212 : (TARGET_64BIT)))
9213 : return -1;
9214 : *pnum_clobbers = 1;
9215 : return 1330; /* *rotldi3_mask_1 */
9216 :
9217 : case 2:
9218 : if (!
9219 : #line 18613 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9220 : (ix86_binary_operator_ok (ROTATE, SImode, operands)
9221 : && (INTVAL (operands[3]) & (4 * BITS_PER_UNIT - 1)) == 0
9222 : && ix86_pre_reload_split ()))
9223 : return -1;
9224 : *pnum_clobbers = 1;
9225 : return 1344; /* *rotlsi3_add_1 */
9226 :
9227 : case 3:
9228 : if (!(
9229 : #line 18613 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9230 : (ix86_binary_operator_ok (ROTATE, DImode, operands)
9231 : && (INTVAL (operands[3]) & (8 * BITS_PER_UNIT - 1)) == 0
9232 : && ix86_pre_reload_split ()) &&
9233 : #line 1162 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9234 : (TARGET_64BIT)))
9235 : return -1;
9236 : *pnum_clobbers = 1;
9237 : return 1346; /* *rotldi3_add_1 */
9238 :
9239 : case 4:
9240 : if (!
9241 : #line 18682 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9242 : (ix86_binary_operator_ok (ROTATE, SImode, operands)
9243 : && (INTVAL (operands[3]) & (4 * BITS_PER_UNIT - 1)) == 0
9244 : && ix86_pre_reload_split ()))
9245 : return -1;
9246 : *pnum_clobbers = 1;
9247 : return 1360; /* *rotlsi3_sub_1 */
9248 :
9249 : case 5:
9250 : if (!(
9251 : #line 18682 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9252 : (ix86_binary_operator_ok (ROTATE, DImode, operands)
9253 : && (INTVAL (operands[3]) & (8 * BITS_PER_UNIT - 1)) == 0
9254 : && ix86_pre_reload_split ()) &&
9255 : #line 1162 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9256 : (TARGET_64BIT)))
9257 : return -1;
9258 : *pnum_clobbers = 1;
9259 : return 1362; /* *rotldi3_sub_1 */
9260 :
9261 : case 6:
9262 : x2 = XEXP (x1, 1);
9263 : x3 = XEXP (x2, 1);
9264 : switch (GET_CODE (x3))
9265 : {
9266 : case SUBREG:
9267 : switch (pattern454 (x2, pnum_clobbers))
9268 : {
9269 : case 0:
9270 : if (
9271 : #line 18484 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9272 : (ix86_binary_operator_ok (ROTATE, SImode, operands)
9273 : && (INTVAL (operands[3]) & (GET_MODE_BITSIZE (SImode)-1))
9274 : == GET_MODE_BITSIZE (SImode)-1
9275 : && ix86_pre_reload_split ()))
9276 : {
9277 : *pnum_clobbers = 1;
9278 : return 1320; /* *rotlsi3_mask */
9279 : }
9280 : break;
9281 :
9282 : case 1:
9283 : if ((
9284 : #line 18484 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9285 : (ix86_binary_operator_ok (ROTATE, DImode, operands)
9286 : && (INTVAL (operands[3]) & (GET_MODE_BITSIZE (DImode)-1))
9287 : == GET_MODE_BITSIZE (DImode)-1
9288 : && ix86_pre_reload_split ()) &&
9289 : #line 1162 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9290 : (TARGET_64BIT)))
9291 : {
9292 : *pnum_clobbers = 1;
9293 : return 1322; /* *rotldi3_mask */
9294 : }
9295 : break;
9296 :
9297 : case 2:
9298 : if (
9299 : #line 18577 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9300 : (ix86_binary_operator_ok (ROTATE, SImode, operands)
9301 : && (INTVAL (operands[3]) & (4 * BITS_PER_UNIT - 1)) == 0
9302 : && ix86_pre_reload_split ()))
9303 : {
9304 : *pnum_clobbers = 1;
9305 : return 1336; /* *rotlsi3_add */
9306 : }
9307 : break;
9308 :
9309 : case 3:
9310 : if ((
9311 : #line 18577 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9312 : (ix86_binary_operator_ok (ROTATE, DImode, operands)
9313 : && (INTVAL (operands[3]) & (8 * BITS_PER_UNIT - 1)) == 0
9314 : && ix86_pre_reload_split ()) &&
9315 : #line 1162 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9316 : (TARGET_64BIT)))
9317 : {
9318 : *pnum_clobbers = 1;
9319 : return 1338; /* *rotldi3_add */
9320 : }
9321 : break;
9322 :
9323 : case 4:
9324 : if (
9325 : #line 18646 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9326 : (ix86_binary_operator_ok (ROTATE, SImode, operands)
9327 : && (INTVAL (operands[3]) & (4 * BITS_PER_UNIT - 1)) == 0
9328 : && ix86_pre_reload_split ()))
9329 : {
9330 : *pnum_clobbers = 1;
9331 : return 1352; /* *rotlsi3_sub */
9332 : }
9333 : break;
9334 :
9335 : case 5:
9336 : if ((
9337 : #line 18646 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9338 : (ix86_binary_operator_ok (ROTATE, DImode, operands)
9339 : && (INTVAL (operands[3]) & (8 * BITS_PER_UNIT - 1)) == 0
9340 : && ix86_pre_reload_split ()) &&
9341 : #line 1162 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9342 : (TARGET_64BIT)))
9343 : {
9344 : *pnum_clobbers = 1;
9345 : return 1354; /* *rotldi3_sub */
9346 : }
9347 : break;
9348 :
9349 : default:
9350 : break;
9351 : }
9352 : break;
9353 :
9354 : case CONST_INT:
9355 : if (pnum_clobbers != NULL)
9356 : {
9357 : operands[2] = x3;
9358 : if (const_1_to_31_operand (operands[2], E_QImode)
9359 : && register_operand (operands[0], E_DImode)
9360 : && GET_MODE (x2) == E_DImode
9361 : && register_operand (operands[1], E_DImode)
9362 : &&
9363 : #line 1236 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9364 : (!TARGET_64BIT))
9365 : {
9366 : *pnum_clobbers = 2;
9367 : return 1364; /* ix86_rotldi3_doubleword */
9368 : }
9369 : }
9370 : if (XWINT (x3, 0) == 32L
9371 : && register_operand (operands[0], E_DImode)
9372 : && GET_MODE (x2) == E_DImode
9373 : && register_operand (operands[1], E_DImode)
9374 : &&
9375 : #line 18787 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9376 : (!TARGET_64BIT))
9377 : return 1368; /* rotl32di2_doubleword */
9378 : break;
9379 :
9380 : default:
9381 : break;
9382 : }
9383 : operands[2] = x3;
9384 : if (!nonmemory_operand (operands[2], E_QImode))
9385 : return -1;
9386 : switch (pattern14 (x2))
9387 : {
9388 : case 0:
9389 : if (
9390 : #line 18838 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9391 : (ix86_binary_operator_ok (ROTATE, SImode, operands, TARGET_APX_NDD)
9392 : && TARGET_APX_NF))
9393 : return 1374; /* *rotlsi3_1_nf */
9394 : if (pnum_clobbers == NULL
9395 : || !
9396 : #line 18838 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9397 : (ix86_binary_operator_ok (ROTATE, SImode, operands, TARGET_APX_NDD)
9398 : && true))
9399 : return -1;
9400 : *pnum_clobbers = 1;
9401 : return 1375; /* *rotlsi3_1 */
9402 :
9403 : case 1:
9404 : if ((
9405 : #line 18838 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9406 : (ix86_binary_operator_ok (ROTATE, DImode, operands, TARGET_APX_NDD)
9407 : && TARGET_APX_NF) &&
9408 : #line 1168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9409 : (TARGET_64BIT)))
9410 : return 1378; /* *rotldi3_1_nf */
9411 : if (pnum_clobbers == NULL
9412 : || !(
9413 : #line 18838 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9414 : (ix86_binary_operator_ok (ROTATE, DImode, operands, TARGET_APX_NDD)
9415 : && true) &&
9416 : #line 1168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9417 : (TARGET_64BIT)))
9418 : return -1;
9419 : *pnum_clobbers = 1;
9420 : return 1379; /* *rotldi3_1 */
9421 :
9422 : default:
9423 : return -1;
9424 : }
9425 :
9426 : default:
9427 : return -1;
9428 : }
9429 : }
9430 :
9431 : int
9432 : recog_114 (rtx x1 ATTRIBUTE_UNUSED,
9433 : rtx_insn *insn ATTRIBUTE_UNUSED,
9434 : int *pnum_clobbers ATTRIBUTE_UNUSED)
9435 : {
9436 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
9437 : rtx x2, x3, x4, x5, x6, x7;
9438 : int res ATTRIBUTE_UNUSED;
9439 : x2 = XEXP (x1, 1);
9440 : switch (XVECLEN (x2, 0))
9441 : {
9442 : case 2:
9443 : return recog_113 (x1, insn, pnum_clobbers);
9444 :
9445 : case 1:
9446 : return recog_112 (x1, insn, pnum_clobbers);
9447 :
9448 : case 4:
9449 : if (pnum_clobbers == NULL)
9450 : return -1;
9451 : x3 = XVECEXP (x2, 0, 3);
9452 : if (GET_CODE (x3) != REG
9453 : || REGNO (x3) != 7
9454 : || GET_MODE (x3) != E_SImode)
9455 : return -1;
9456 : x4 = XEXP (x1, 0);
9457 : operands[0] = x4;
9458 : if (!register_operand (operands[0], E_SImode)
9459 : || GET_MODE (x2) != E_SImode)
9460 : return -1;
9461 : x5 = XVECEXP (x2, 0, 0);
9462 : operands[1] = x5;
9463 : x6 = XVECEXP (x2, 0, 1);
9464 : operands[2] = x6;
9465 : x7 = XVECEXP (x2, 0, 2);
9466 : operands[3] = x7;
9467 : switch (XINT (x2, 1))
9468 : {
9469 : case 21:
9470 : if (!register_operand (operands[1], E_SImode)
9471 : || !tls_symbolic_operand (operands[2], E_VOIDmode)
9472 : || !constant_call_address_operand (operands[3], E_VOIDmode)
9473 : || !
9474 : #line 23308 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9475 : (!TARGET_64BIT && TARGET_GNU_TLS))
9476 : return -1;
9477 : *pnum_clobbers = 3;
9478 : return 1683; /* *tls_global_dynamic_32_gnu */
9479 :
9480 : case 23:
9481 : if (!tls_symbolic_operand (operands[1], E_VOIDmode)
9482 : || !register_operand (operands[2], E_SImode)
9483 : || !register_operand (operands[3], E_SImode)
9484 : || !
9485 : #line 23671 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9486 : (!TARGET_64BIT && TARGET_GNU2_TLS))
9487 : return -1;
9488 : *pnum_clobbers = 1;
9489 : return 1699; /* *tls_dynamic_gnu2_call_32 */
9490 :
9491 : default:
9492 : return -1;
9493 : }
9494 :
9495 : case 3:
9496 : x4 = XEXP (x1, 0);
9497 : operands[0] = x4;
9498 : switch (XINT (x2, 1))
9499 : {
9500 : case 22:
9501 : if (pnum_clobbers == NULL
9502 : || GET_MODE (x2) != E_SImode)
9503 : return -1;
9504 : x7 = XVECEXP (x2, 0, 2);
9505 : if (GET_CODE (x7) != REG
9506 : || REGNO (x7) != 7
9507 : || GET_MODE (x7) != E_SImode
9508 : || !register_operand (operands[0], E_SImode))
9509 : return -1;
9510 : x5 = XVECEXP (x2, 0, 0);
9511 : operands[1] = x5;
9512 : if (!register_operand (operands[1], E_SImode))
9513 : return -1;
9514 : x6 = XVECEXP (x2, 0, 1);
9515 : operands[2] = x6;
9516 : if (!constant_call_address_operand (operands[2], E_VOIDmode)
9517 : || !
9518 : #line 23436 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9519 : (!TARGET_64BIT && TARGET_GNU_TLS))
9520 : return -1;
9521 : *pnum_clobbers = 3;
9522 : return 1687; /* *tls_local_dynamic_base_32_gnu */
9523 :
9524 : case 23:
9525 : if (pnum_clobbers == NULL)
9526 : return -1;
9527 : x7 = XVECEXP (x2, 0, 2);
9528 : if (GET_CODE (x7) != REG
9529 : || REGNO (x7) != 7)
9530 : return -1;
9531 : x5 = XVECEXP (x2, 0, 0);
9532 : operands[1] = x5;
9533 : if (!tls_symbolic_operand (operands[1], E_VOIDmode))
9534 : return -1;
9535 : x6 = XVECEXP (x2, 0, 1);
9536 : operands[2] = x6;
9537 : switch (GET_MODE (operands[0]))
9538 : {
9539 : case E_SImode:
9540 : if (pattern1219 (x2,
9541 : E_SImode) != 0
9542 : || !(
9543 : #line 23734 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9544 : (TARGET_64BIT && TARGET_GNU2_TLS) &&
9545 : #line 1409 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9546 : (ptr_mode == SImode)))
9547 : return -1;
9548 : *pnum_clobbers = 1;
9549 : return 1703; /* *tls_dynamic_gnu2_call_64_si */
9550 :
9551 : case E_DImode:
9552 : if (pattern1219 (x2,
9553 : E_DImode) != 0
9554 : || !(
9555 : #line 23734 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9556 : (TARGET_64BIT && TARGET_GNU2_TLS) &&
9557 : #line 1409 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9558 : (ptr_mode == DImode)))
9559 : return -1;
9560 : *pnum_clobbers = 1;
9561 : return 1704; /* *tls_dynamic_gnu2_call_64_di */
9562 :
9563 : default:
9564 : return -1;
9565 : }
9566 :
9567 : case 60:
9568 : switch (pattern305 (x2))
9569 : {
9570 : case 0:
9571 : x7 = XVECEXP (x2, 0, 2);
9572 : operands[3] = x7;
9573 : x6 = XVECEXP (x2, 0, 1);
9574 : operands[2] = x6;
9575 : switch (pattern24 (x2))
9576 : {
9577 : case 0:
9578 : switch (GET_MODE (operands[1]))
9579 : {
9580 : case E_V32HFmode:
9581 : if (register_operand (operands[1], E_V32HFmode)
9582 : && nonimmediate_operand (operands[2], E_V32HFmode)
9583 : && const_0_to_31_operand (operands[3], E_SImode)
9584 : && (
9585 : #line 4621 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9586 : (TARGET_AVX512F && 1) &&
9587 : #line 320 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9588 : (TARGET_AVX512FP16)))
9589 : return 3337; /* avx512bw_cmpv32hf3 */
9590 : break;
9591 :
9592 : case E_V32QImode:
9593 : if (const_0_to_7_operand (operands[3], E_SImode))
9594 : {
9595 : if (register_operand (operands[1], E_V32QImode)
9596 : && nonimmediate_operand (operands[2], E_V32QImode)
9597 : && (
9598 : #line 4815 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9599 : (TARGET_AVX512BW) &&
9600 : #line 328 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9601 : (TARGET_AVX512VL)))
9602 : return 3485; /* avx512vl_cmpv32qi3 */
9603 : if (general_operand (operands[1], E_V32QImode)
9604 : && general_operand (operands[2], E_V32QImode)
9605 : && (
9606 : #line 4907 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9607 : (TARGET_AVX512F && ix86_pre_reload_split ()
9608 : && rtx_equal_p (operands[1], operands[2])
9609 : && (!MEM_P (operands[1]) || !MEM_VOLATILE_P (operands[1]))) &&
9610 : #line 501 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9611 : (TARGET_AVX512VL && TARGET_AVX512BW)))
9612 : return 3543; /* *avx512vl_cmpv32qi3_dup_op */
9613 : }
9614 : break;
9615 :
9616 : case E_V32HImode:
9617 : if (const_0_to_7_operand (operands[3], E_SImode))
9618 : {
9619 : if (register_operand (operands[1], E_V32HImode)
9620 : && nonimmediate_operand (operands[2], E_V32HImode)
9621 : &&
9622 : #line 4815 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9623 : (TARGET_AVX512BW))
9624 : return 3487; /* avx512bw_cmpv32hi3 */
9625 : if (general_operand (operands[1], E_V32HImode)
9626 : && general_operand (operands[2], E_V32HImode)
9627 : && (
9628 : #line 4907 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9629 : (TARGET_AVX512F && ix86_pre_reload_split ()
9630 : && rtx_equal_p (operands[1], operands[2])
9631 : && (!MEM_P (operands[1]) || !MEM_VOLATILE_P (operands[1]))) &&
9632 : #line 503 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9633 : (TARGET_AVX512BW)))
9634 : return 3547; /* *avx512bw_cmpv32hi3_dup_op */
9635 : }
9636 : break;
9637 :
9638 : case E_V32BFmode:
9639 : if (register_operand (operands[1], E_V32BFmode)
9640 : && nonimmediate_operand (operands[2], E_V32BFmode)
9641 : && const_0_to_31_operand (operands[3], E_VOIDmode)
9642 : &&
9643 : #line 33167 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9644 : (TARGET_AVX10_2))
9645 : return 10797; /* avx10_2_cmpbf16_v32bf */
9646 : break;
9647 :
9648 : default:
9649 : break;
9650 : }
9651 : break;
9652 :
9653 : case 1:
9654 : if (const_0_to_7_operand (operands[3], E_SImode))
9655 : {
9656 : if (register_operand (operands[1], E_V64QImode)
9657 : && nonimmediate_operand (operands[2], E_V64QImode)
9658 : &&
9659 : #line 4815 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9660 : (TARGET_AVX512BW))
9661 : return 3481; /* avx512bw_cmpv64qi3 */
9662 : if (general_operand (operands[1], E_V64QImode)
9663 : && general_operand (operands[2], E_V64QImode)
9664 : && (
9665 : #line 4907 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9666 : (TARGET_AVX512F && ix86_pre_reload_split ()
9667 : && rtx_equal_p (operands[1], operands[2])
9668 : && (!MEM_P (operands[1]) || !MEM_VOLATILE_P (operands[1]))) &&
9669 : #line 500 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9670 : (TARGET_AVX512BW)))
9671 : return 3541; /* *avx512bw_cmpv64qi3_dup_op */
9672 : }
9673 : break;
9674 :
9675 : default:
9676 : break;
9677 : }
9678 : if (XWINT (x7, 0) != 0L)
9679 : return -1;
9680 : operands[2] = x6;
9681 : switch (pattern994 (x2))
9682 : {
9683 : case 0:
9684 : if (!
9685 : #line 4935 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9686 : (TARGET_AVX512BW && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
9687 : return -1;
9688 : return 3565; /* *avx512bw_eqv64qi3_1 */
9689 :
9690 : case 1:
9691 : if (!(
9692 : #line 4935 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9693 : (TARGET_AVX512BW && !(MEM_P (operands[1]) && MEM_P (operands[2]))) &&
9694 : #line 328 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9695 : (TARGET_AVX512VL)))
9696 : return -1;
9697 : return 3573; /* *avx512vl_eqv32qi3_1 */
9698 :
9699 : case 2:
9700 : if (!
9701 : #line 4935 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9702 : (TARGET_AVX512BW && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
9703 : return -1;
9704 : return 3577; /* *avx512bw_eqv32hi3_1 */
9705 :
9706 : default:
9707 : return -1;
9708 : }
9709 :
9710 : case 1:
9711 : if (!
9712 : #line 5143 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9713 : (TARGET_AVX512BW && ix86_pre_reload_split ()
9714 : && ix86_binary_operator_ok (US_MINUS, V64QImode, operands)
9715 : && (INTVAL (operands[4]) & 3) == 0))
9716 : return -1;
9717 : return 3715; /* *avx512bw_ucmpv64qi3_1 */
9718 :
9719 : case 2:
9720 : if (!(
9721 : #line 5143 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9722 : (TARGET_AVX512BW && ix86_pre_reload_split ()
9723 : && ix86_binary_operator_ok (US_MINUS, V32QImode, operands)
9724 : && (INTVAL (operands[4]) & 3) == 0) &&
9725 : #line 328 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9726 : (TARGET_AVX512VL)))
9727 : return -1;
9728 : return 3719; /* *avx512vl_ucmpv32qi3_1 */
9729 :
9730 : case 3:
9731 : if (!
9732 : #line 5143 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9733 : (TARGET_AVX512BW && ix86_pre_reload_split ()
9734 : && ix86_binary_operator_ok (US_MINUS, V32HImode, operands)
9735 : && (INTVAL (operands[4]) & 3) == 0))
9736 : return -1;
9737 : return 3721; /* *avx512bw_ucmpv32hi3_1 */
9738 :
9739 : default:
9740 : return -1;
9741 : }
9742 :
9743 : case 158:
9744 : switch (pattern305 (x2))
9745 : {
9746 : case 0:
9747 : x7 = XVECEXP (x2, 0, 2);
9748 : operands[3] = x7;
9749 : if (const_0_to_7_operand (operands[3], E_SImode))
9750 : {
9751 : x6 = XVECEXP (x2, 0, 1);
9752 : operands[2] = x6;
9753 : switch (GET_MODE (operands[0]))
9754 : {
9755 : case E_DImode:
9756 : if (pattern596 (x2) == 0
9757 : && (
9758 : #line 4907 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9759 : (TARGET_AVX512F && ix86_pre_reload_split ()
9760 : && rtx_equal_p (operands[1], operands[2])
9761 : && (!MEM_P (operands[1]) || !MEM_VOLATILE_P (operands[1]))) &&
9762 : #line 500 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9763 : (TARGET_AVX512BW)))
9764 : return 3542; /* *avx512bw_cmpv64qi3_dup_op */
9765 : break;
9766 :
9767 : case E_SImode:
9768 : switch (pattern597 (x2))
9769 : {
9770 : case 0:
9771 : if ((
9772 : #line 4907 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9773 : (TARGET_AVX512F && ix86_pre_reload_split ()
9774 : && rtx_equal_p (operands[1], operands[2])
9775 : && (!MEM_P (operands[1]) || !MEM_VOLATILE_P (operands[1]))) &&
9776 : #line 501 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9777 : (TARGET_AVX512VL && TARGET_AVX512BW)))
9778 : return 3544; /* *avx512vl_cmpv32qi3_dup_op */
9779 : break;
9780 :
9781 : case 1:
9782 : if ((
9783 : #line 4907 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9784 : (TARGET_AVX512F && ix86_pre_reload_split ()
9785 : && rtx_equal_p (operands[1], operands[2])
9786 : && (!MEM_P (operands[1]) || !MEM_VOLATILE_P (operands[1]))) &&
9787 : #line 503 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9788 : (TARGET_AVX512BW)))
9789 : return 3548; /* *avx512bw_cmpv32hi3_dup_op */
9790 : break;
9791 :
9792 : default:
9793 : break;
9794 : }
9795 : break;
9796 :
9797 : default:
9798 : break;
9799 : }
9800 : }
9801 : x6 = XVECEXP (x2, 0, 1);
9802 : operands[2] = x6;
9803 : if (XWINT (x7, 0) == 0L)
9804 : {
9805 : switch (pattern994 (x2))
9806 : {
9807 : case 0:
9808 : if (
9809 : #line 4935 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9810 : (TARGET_AVX512BW && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
9811 : return 3567; /* *avx512bw_eqv64qi3_1 */
9812 : break;
9813 :
9814 : case 1:
9815 : if ((
9816 : #line 4935 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9817 : (TARGET_AVX512BW && !(MEM_P (operands[1]) && MEM_P (operands[2]))) &&
9818 : #line 328 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9819 : (TARGET_AVX512VL)))
9820 : return 3575; /* *avx512vl_eqv32qi3_1 */
9821 : break;
9822 :
9823 : case 2:
9824 : if (
9825 : #line 4935 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9826 : (TARGET_AVX512BW && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
9827 : return 3579; /* *avx512bw_eqv32hi3_1 */
9828 : break;
9829 :
9830 : default:
9831 : break;
9832 : }
9833 : }
9834 : operands[3] = x7;
9835 : if (!const_0_to_7_operand (operands[3], E_SImode))
9836 : return -1;
9837 : switch (pattern301 (x2))
9838 : {
9839 : case 0:
9840 : if (!
9841 : #line 4950 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9842 : (TARGET_AVX512BW))
9843 : return -1;
9844 : return 3589; /* avx512bw_ucmpv64qi3 */
9845 :
9846 : case 1:
9847 : if (!(
9848 : #line 4950 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9849 : (TARGET_AVX512BW) &&
9850 : #line 328 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9851 : (TARGET_AVX512VL)))
9852 : return -1;
9853 : return 3593; /* avx512vl_ucmpv32qi3 */
9854 :
9855 : case 2:
9856 : if (!
9857 : #line 4950 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9858 : (TARGET_AVX512BW))
9859 : return -1;
9860 : return 3595; /* avx512bw_ucmpv32hi3 */
9861 :
9862 : default:
9863 : return -1;
9864 : }
9865 :
9866 : case 1:
9867 : if (!
9868 : #line 5143 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9869 : (TARGET_AVX512BW && ix86_pre_reload_split ()
9870 : && ix86_binary_operator_ok (US_MINUS, V64QImode, operands)
9871 : && (INTVAL (operands[4]) & 1) == 0))
9872 : return -1;
9873 : return 3716; /* *avx512bw_ucmpv64qi3_1 */
9874 :
9875 : case 2:
9876 : if (!(
9877 : #line 5143 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9878 : (TARGET_AVX512BW && ix86_pre_reload_split ()
9879 : && ix86_binary_operator_ok (US_MINUS, V32QImode, operands)
9880 : && (INTVAL (operands[4]) & 1) == 0) &&
9881 : #line 328 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9882 : (TARGET_AVX512VL)))
9883 : return -1;
9884 : return 3720; /* *avx512vl_ucmpv32qi3_1 */
9885 :
9886 : case 3:
9887 : if (!
9888 : #line 5143 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9889 : (TARGET_AVX512BW && ix86_pre_reload_split ()
9890 : && ix86_binary_operator_ok (US_MINUS, V32HImode, operands)
9891 : && (INTVAL (operands[4]) & 1) == 0))
9892 : return -1;
9893 : return 3722; /* *avx512bw_ucmpv32hi3_1 */
9894 :
9895 : default:
9896 : return -1;
9897 : }
9898 :
9899 : case 122:
9900 : if (pattern306 (x2) != 0
9901 : || !
9902 : #line 23625 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9903 : ((TARGET_MMX || TARGET_MMX_WITH_SSE) && TARGET_SSSE3))
9904 : return -1;
9905 : return 8690; /* ssse3_palignrdi */
9906 :
9907 : default:
9908 : return -1;
9909 : }
9910 :
9911 : default:
9912 : return -1;
9913 : }
9914 : }
9915 :
9916 : int
9917 : recog_132 (rtx x1 ATTRIBUTE_UNUSED,
9918 : rtx_insn *insn ATTRIBUTE_UNUSED,
9919 : int *pnum_clobbers ATTRIBUTE_UNUSED)
9920 : {
9921 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
9922 : rtx x2, x3, x4, x5, x6, x7;
9923 : int res ATTRIBUTE_UNUSED;
9924 : x2 = XEXP (x1, 1);
9925 : x3 = XEXP (x2, 0);
9926 : x4 = XVECEXP (x3, 0, 0);
9927 : operands[1] = x4;
9928 : x5 = XVECEXP (x3, 0, 1);
9929 : operands[2] = x5;
9930 : x6 = XEXP (x2, 1);
9931 : operands[3] = x6;
9932 : x7 = XEXP (x2, 2);
9933 : operands[4] = x7;
9934 : switch (GET_MODE (operands[0]))
9935 : {
9936 : case E_V8SImode:
9937 : if (pattern1117 (x2,
9938 : E_QImode,
9939 : E_V8SImode) != 0
9940 : || !(
9941 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
9942 : (TARGET_AVX512F) &&
9943 : #line 28004 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9944 : (TARGET_AVX2 && (32 == 64 || TARGET_AVX512VL))))
9945 : return -1;
9946 : return 9169; /* avx2_permvarv8si_mask */
9947 :
9948 : case E_V8SFmode:
9949 : if (pattern1118 (x2,
9950 : E_QImode,
9951 : E_V8SFmode,
9952 : E_V8SImode) != 0
9953 : || !(
9954 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
9955 : (TARGET_AVX512F) &&
9956 : #line 28004 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9957 : (TARGET_AVX2 && (32 == 64 || TARGET_AVX512VL))))
9958 : return -1;
9959 : return 9171; /* avx2_permvarv8sf_mask */
9960 :
9961 : case E_V16SImode:
9962 : if (pattern1117 (x2,
9963 : E_HImode,
9964 : E_V16SImode) != 0
9965 : || !(
9966 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
9967 : (TARGET_AVX512F) && (
9968 : #line 28004 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9969 : (TARGET_AVX2 && (64 == 64 || TARGET_AVX512VL)) &&
9970 : #line 982 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9971 : (TARGET_AVX512F))))
9972 : return -1;
9973 : return 9173; /* avx512f_permvarv16si_mask */
9974 :
9975 : case E_V16SFmode:
9976 : if (pattern1118 (x2,
9977 : E_HImode,
9978 : E_V16SFmode,
9979 : E_V16SImode) != 0
9980 : || !(
9981 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
9982 : (TARGET_AVX512F) && (
9983 : #line 28004 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9984 : (TARGET_AVX2 && (64 == 64 || TARGET_AVX512VL)) &&
9985 : #line 982 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9986 : (TARGET_AVX512F))))
9987 : return -1;
9988 : return 9175; /* avx512f_permvarv16sf_mask */
9989 :
9990 : case E_V8DImode:
9991 : if (pattern1117 (x2,
9992 : E_QImode,
9993 : E_V8DImode) != 0
9994 : || !(
9995 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
9996 : (TARGET_AVX512F) && (
9997 : #line 28004 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9998 : (TARGET_AVX2 && (64 == 64 || TARGET_AVX512VL)) &&
9999 : #line 983 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10000 : (TARGET_AVX512F))))
10001 : return -1;
10002 : return 9177; /* avx512f_permvarv8di_mask */
10003 :
10004 : case E_V8DFmode:
10005 : if (pattern1118 (x2,
10006 : E_QImode,
10007 : E_V8DFmode,
10008 : E_V8DImode) != 0
10009 : || !(
10010 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
10011 : (TARGET_AVX512F) && (
10012 : #line 28004 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10013 : (TARGET_AVX2 && (64 == 64 || TARGET_AVX512VL)) &&
10014 : #line 983 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10015 : (TARGET_AVX512F))))
10016 : return -1;
10017 : return 9179; /* avx512f_permvarv8df_mask */
10018 :
10019 : case E_V4DImode:
10020 : if (pattern1117 (x2,
10021 : E_QImode,
10022 : E_V4DImode) != 0
10023 : || !(
10024 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
10025 : (TARGET_AVX512F) && (
10026 : #line 28004 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10027 : (TARGET_AVX2 && (32 == 64 || TARGET_AVX512VL)) &&
10028 : #line 984 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10029 : (TARGET_AVX512VL))))
10030 : return -1;
10031 : return 9181; /* avx2_permvarv4di_mask */
10032 :
10033 : case E_V4DFmode:
10034 : if (pattern1118 (x2,
10035 : E_QImode,
10036 : E_V4DFmode,
10037 : E_V4DImode) != 0
10038 : || !(
10039 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
10040 : (TARGET_AVX512F) && (
10041 : #line 28004 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10042 : (TARGET_AVX2 && (32 == 64 || TARGET_AVX512VL)) &&
10043 : #line 984 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10044 : (TARGET_AVX512VL))))
10045 : return -1;
10046 : return 9183; /* avx2_permvarv4df_mask */
10047 :
10048 : case E_V64QImode:
10049 : if (pattern1117 (x2,
10050 : E_DImode,
10051 : E_V64QImode) != 0
10052 : || !(
10053 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
10054 : (TARGET_AVX512F) &&
10055 : #line 28023 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10056 : (TARGET_AVX512VBMI && (64 == 64 || TARGET_AVX512VL))))
10057 : return -1;
10058 : return 9185; /* avx512bw_permvarv64qi_mask */
10059 :
10060 : case E_V16QImode:
10061 : if (pattern1117 (x2,
10062 : E_HImode,
10063 : E_V16QImode) != 0
10064 : || !(
10065 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
10066 : (TARGET_AVX512F) && (
10067 : #line 28023 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10068 : (TARGET_AVX512VBMI && (16 == 64 || TARGET_AVX512VL)) &&
10069 : #line 338 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10070 : (TARGET_AVX512VL))))
10071 : return -1;
10072 : return 9187; /* avx512vl_permvarv16qi_mask */
10073 :
10074 : case E_V32QImode:
10075 : if (pattern1117 (x2,
10076 : E_SImode,
10077 : E_V32QImode) != 0
10078 : || !(
10079 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
10080 : (TARGET_AVX512F) && (
10081 : #line 28023 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10082 : (TARGET_AVX512VBMI && (32 == 64 || TARGET_AVX512VL)) &&
10083 : #line 338 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10084 : (TARGET_AVX512VL))))
10085 : return -1;
10086 : return 9189; /* avx512vl_permvarv32qi_mask */
10087 :
10088 : case E_V8HImode:
10089 : if (pattern1117 (x2,
10090 : E_QImode,
10091 : E_V8HImode) != 0
10092 : || !(
10093 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
10094 : (TARGET_AVX512F) && (
10095 : #line 28035 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10096 : (TARGET_AVX512BW && (16 == 64 || TARGET_AVX512VL)) &&
10097 : #line 682 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10098 : (TARGET_AVX512VL))))
10099 : return -1;
10100 : return 9191; /* avx512vl_permvarv8hi_mask */
10101 :
10102 : case E_V16HImode:
10103 : if (pattern1117 (x2,
10104 : E_HImode,
10105 : E_V16HImode) != 0
10106 : || !(
10107 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
10108 : (TARGET_AVX512F) && (
10109 : #line 28035 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10110 : (TARGET_AVX512BW && (32 == 64 || TARGET_AVX512VL)) &&
10111 : #line 682 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10112 : (TARGET_AVX512VL))))
10113 : return -1;
10114 : return 9193; /* avx512vl_permvarv16hi_mask */
10115 :
10116 : case E_V32HImode:
10117 : if (pattern1117 (x2,
10118 : E_SImode,
10119 : E_V32HImode) != 0
10120 : || !(
10121 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
10122 : (TARGET_AVX512F) &&
10123 : #line 28035 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10124 : (TARGET_AVX512BW && (64 == 64 || TARGET_AVX512VL))))
10125 : return -1;
10126 : return 9195; /* avx512bw_permvarv32hi_mask */
10127 :
10128 : case E_V8HFmode:
10129 : if (pattern1118 (x2,
10130 : E_QImode,
10131 : E_V8HFmode,
10132 : E_V8HImode) != 0
10133 : || !(
10134 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
10135 : (TARGET_AVX512F) && (
10136 : #line 28035 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10137 : (TARGET_AVX512BW && (16 == 64 || TARGET_AVX512VL)) &&
10138 : #line 683 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10139 : (TARGET_AVX512VL))))
10140 : return -1;
10141 : return 9197; /* avx512fp16_permvarv8hf_mask */
10142 :
10143 : case E_V16HFmode:
10144 : if (pattern1118 (x2,
10145 : E_HImode,
10146 : E_V16HFmode,
10147 : E_V16HImode) != 0
10148 : || !(
10149 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
10150 : (TARGET_AVX512F) && (
10151 : #line 28035 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10152 : (TARGET_AVX512BW && (32 == 64 || TARGET_AVX512VL)) &&
10153 : #line 683 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10154 : (TARGET_AVX512VL))))
10155 : return -1;
10156 : return 9199; /* avx512vl_permvarv16hf_mask */
10157 :
10158 : case E_V32HFmode:
10159 : if (pattern1118 (x2,
10160 : E_SImode,
10161 : E_V32HFmode,
10162 : E_V32HImode) != 0
10163 : || !(
10164 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
10165 : (TARGET_AVX512F) &&
10166 : #line 28035 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10167 : (TARGET_AVX512BW && (64 == 64 || TARGET_AVX512VL))))
10168 : return -1;
10169 : return 9201; /* avx512bw_permvarv32hf_mask */
10170 :
10171 : case E_V8BFmode:
10172 : if (pattern1118 (x2,
10173 : E_QImode,
10174 : E_V8BFmode,
10175 : E_V8HImode) != 0
10176 : || !(
10177 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
10178 : (TARGET_AVX512F) && (
10179 : #line 28035 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10180 : (TARGET_AVX512BW && (16 == 64 || TARGET_AVX512VL)) &&
10181 : #line 684 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10182 : (TARGET_AVX512VL))))
10183 : return -1;
10184 : return 9203; /* avx512vl_permvarv8bf_mask */
10185 :
10186 : case E_V16BFmode:
10187 : if (pattern1118 (x2,
10188 : E_HImode,
10189 : E_V16BFmode,
10190 : E_V16HImode) != 0
10191 : || !(
10192 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
10193 : (TARGET_AVX512F) && (
10194 : #line 28035 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10195 : (TARGET_AVX512BW && (32 == 64 || TARGET_AVX512VL)) &&
10196 : #line 684 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10197 : (TARGET_AVX512VL))))
10198 : return -1;
10199 : return 9205; /* avx512vl_permvarv16bf_mask */
10200 :
10201 : case E_V32BFmode:
10202 : if (pattern1118 (x2,
10203 : E_SImode,
10204 : E_V32BFmode,
10205 : E_V32HImode) != 0
10206 : || !(
10207 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
10208 : (TARGET_AVX512F) &&
10209 : #line 28035 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10210 : (TARGET_AVX512BW && (64 == 64 || TARGET_AVX512VL))))
10211 : return -1;
10212 : return 9207; /* avx512bw_permvarv32bf_mask */
10213 :
10214 : default:
10215 : return -1;
10216 : }
10217 : }
10218 :
10219 : int
10220 : recog_144 (rtx x1 ATTRIBUTE_UNUSED,
10221 : rtx_insn *insn ATTRIBUTE_UNUSED,
10222 : int *pnum_clobbers ATTRIBUTE_UNUSED)
10223 : {
10224 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
10225 : rtx x2, x3, x4, x5, x6, x7, x8;
10226 : int res ATTRIBUTE_UNUSED;
10227 : x2 = XEXP (x1, 1);
10228 : x3 = XEXP (x2, 0);
10229 : x4 = XVECEXP (x3, 0, 0);
10230 : operands[1] = x4;
10231 : x5 = XVECEXP (x3, 0, 1);
10232 : operands[2] = x5;
10233 : x6 = XVECEXP (x3, 0, 2);
10234 : operands[3] = x6;
10235 : if (!const_0_to_255_operand (operands[3], E_SImode))
10236 : return -1;
10237 : x7 = XEXP (x2, 1);
10238 : operands[4] = x7;
10239 : x8 = XEXP (x2, 2);
10240 : operands[5] = x8;
10241 : switch (GET_MODE (operands[0]))
10242 : {
10243 : case E_V16SImode:
10244 : if (pattern480 (x2,
10245 : E_V16SImode,
10246 : E_HImode) != 0
10247 : || !
10248 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
10249 : (TARGET_AVX512F))
10250 : return -1;
10251 : return 7104; /* avx512f_alignv16si_mask */
10252 :
10253 : case E_V8SImode:
10254 : if (pattern480 (x2,
10255 : E_V8SImode,
10256 : E_QImode) != 0
10257 : || !(
10258 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
10259 : (TARGET_AVX512F) && (
10260 : #line 14381 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10261 : (TARGET_AVX512F) &&
10262 : #line 496 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10263 : (TARGET_AVX512VL))))
10264 : return -1;
10265 : return 7106; /* avx512vl_alignv8si_mask */
10266 :
10267 : case E_V4SImode:
10268 : if (pattern480 (x2,
10269 : E_V4SImode,
10270 : E_QImode) != 0
10271 : || !(
10272 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
10273 : (TARGET_AVX512F) && (
10274 : #line 14381 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10275 : (TARGET_AVX512F) &&
10276 : #line 496 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10277 : (TARGET_AVX512VL))))
10278 : return -1;
10279 : return 7108; /* avx512vl_alignv4si_mask */
10280 :
10281 : case E_V8DImode:
10282 : if (pattern480 (x2,
10283 : E_V8DImode,
10284 : E_QImode) != 0
10285 : || !
10286 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
10287 : (TARGET_AVX512F))
10288 : return -1;
10289 : return 7110; /* avx512f_alignv8di_mask */
10290 :
10291 : case E_V4DImode:
10292 : if (pattern480 (x2,
10293 : E_V4DImode,
10294 : E_QImode) != 0
10295 : || !(
10296 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
10297 : (TARGET_AVX512F) && (
10298 : #line 14381 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10299 : (TARGET_AVX512F) &&
10300 : #line 497 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10301 : (TARGET_AVX512VL))))
10302 : return -1;
10303 : return 7112; /* avx512vl_alignv4di_mask */
10304 :
10305 : case E_V2DImode:
10306 : if (pattern480 (x2,
10307 : E_V2DImode,
10308 : E_QImode) != 0
10309 : || !(
10310 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
10311 : (TARGET_AVX512F) && (
10312 : #line 14381 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10313 : (TARGET_AVX512F) &&
10314 : #line 497 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10315 : (TARGET_AVX512VL))))
10316 : return -1;
10317 : return 7114; /* avx512vl_alignv2di_mask */
10318 :
10319 : default:
10320 : return -1;
10321 : }
10322 : }
10323 :
10324 : int
10325 : recog_151 (rtx x1 ATTRIBUTE_UNUSED,
10326 : rtx_insn *insn ATTRIBUTE_UNUSED,
10327 : int *pnum_clobbers ATTRIBUTE_UNUSED)
10328 : {
10329 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
10330 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
10331 : rtx x10, x11, x12;
10332 : int res ATTRIBUTE_UNUSED;
10333 : x2 = XEXP (x1, 1);
10334 : x3 = XEXP (x2, 0);
10335 : x4 = XEXP (x3, 0);
10336 : switch (XVECLEN (x4, 0))
10337 : {
10338 : case 1:
10339 : x5 = XEXP (x2, 2);
10340 : if (x5 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
10341 : return -1;
10342 : x6 = XVECEXP (x4, 0, 0);
10343 : operands[1] = x6;
10344 : x7 = XEXP (x3, 1);
10345 : operands[3] = x7;
10346 : x8 = XEXP (x3, 2);
10347 : operands[4] = x8;
10348 : if (!register_operand (operands[4], E_QImode))
10349 : return -1;
10350 : x9 = XEXP (x2, 1);
10351 : operands[2] = x9;
10352 : switch (XINT (x4, 1))
10353 : {
10354 : case 55:
10355 : if (pattern1290 (x2) != 0
10356 : || !(
10357 : #line 355 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
10358 : (TARGET_AVX512F) &&
10359 : #line 3002 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10360 : (TARGET_AVX512FP16)))
10361 : return -1;
10362 : return 2948; /* avx512fp16_vmrcpv8hf2_mask */
10363 :
10364 : case 162:
10365 : switch (GET_MODE (operands[0]))
10366 : {
10367 : case E_V4SFmode:
10368 : if (pattern1382 (x2,
10369 : E_V4SFmode) != 0
10370 : || !
10371 : #line 3058 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10372 : (TARGET_AVX512F))
10373 : return -1;
10374 : return 2964; /* srcp14v4sf_mask */
10375 :
10376 : case E_V2DFmode:
10377 : if (pattern1382 (x2,
10378 : E_V2DFmode) != 0
10379 : || !(
10380 : #line 3058 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10381 : (TARGET_AVX512F) &&
10382 : #line 473 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10383 : (TARGET_SSE2)))
10384 : return -1;
10385 : return 2965; /* srcp14v2df_mask */
10386 :
10387 : default:
10388 : return -1;
10389 : }
10390 :
10391 : case 163:
10392 : switch (GET_MODE (operands[0]))
10393 : {
10394 : case E_V4SFmode:
10395 : if (pattern1382 (x2,
10396 : E_V4SFmode) != 0
10397 : || !
10398 : #line 3212 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10399 : (TARGET_AVX512F))
10400 : return -1;
10401 : return 3036; /* rsqrt14_v4sf_mask */
10402 :
10403 : case E_V2DFmode:
10404 : if (pattern1382 (x2,
10405 : E_V2DFmode) != 0
10406 : || !(
10407 : #line 3212 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10408 : (TARGET_AVX512F) &&
10409 : #line 473 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10410 : (TARGET_SSE2)))
10411 : return -1;
10412 : return 3037; /* rsqrt14_v2df_mask */
10413 :
10414 : default:
10415 : return -1;
10416 : }
10417 :
10418 : case 56:
10419 : if (pattern1290 (x2) != 0
10420 : || !(
10421 : #line 355 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
10422 : (TARGET_AVX512F) &&
10423 : #line 3260 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10424 : (TARGET_AVX512FP16)))
10425 : return -1;
10426 : return 3041; /* avx512fp16_vmrsqrtv8hf2_mask */
10427 :
10428 : default:
10429 : return -1;
10430 : }
10431 :
10432 : case 2:
10433 : x5 = XEXP (x2, 2);
10434 : if (GET_CODE (x5) != CONST_INT)
10435 : return -1;
10436 : switch (XINT (x4, 1))
10437 : {
10438 : case 64:
10439 : switch (pattern774 (x2))
10440 : {
10441 : case 0:
10442 : if (!(
10443 : #line 355 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
10444 : (TARGET_AVX512F) && (
10445 : #line 3555 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10446 : (TARGET_SSE) &&
10447 : #line 477 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10448 : (TARGET_AVX512FP16))))
10449 : return -1;
10450 : return 3192; /* avx512fp16_ieee_vmmaxv8hf3_mask */
10451 :
10452 : case 1:
10453 : if (!(
10454 : #line 355 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
10455 : (TARGET_AVX512F) &&
10456 : #line 3555 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10457 : (TARGET_SSE)))
10458 : return -1;
10459 : return 3200; /* sse_ieee_vmmaxv4sf3_mask */
10460 :
10461 : case 2:
10462 : if (!(
10463 : #line 355 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
10464 : (TARGET_AVX512F) && (
10465 : #line 3555 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10466 : (TARGET_SSE) &&
10467 : #line 478 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10468 : (TARGET_SSE2))))
10469 : return -1;
10470 : return 3208; /* sse2_ieee_vmmaxv2df3_mask */
10471 :
10472 : default:
10473 : return -1;
10474 : }
10475 :
10476 : case 63:
10477 : switch (pattern774 (x2))
10478 : {
10479 : case 0:
10480 : if (!(
10481 : #line 355 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
10482 : (TARGET_AVX512F) && (
10483 : #line 3555 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10484 : (TARGET_SSE) &&
10485 : #line 477 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10486 : (TARGET_AVX512FP16))))
10487 : return -1;
10488 : return 3196; /* avx512fp16_ieee_vmminv8hf3_mask */
10489 :
10490 : case 1:
10491 : if (!(
10492 : #line 355 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
10493 : (TARGET_AVX512F) &&
10494 : #line 3555 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10495 : (TARGET_SSE)))
10496 : return -1;
10497 : return 3204; /* sse_ieee_vmminv4sf3_mask */
10498 :
10499 : case 2:
10500 : if (!(
10501 : #line 355 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
10502 : (TARGET_AVX512F) && (
10503 : #line 3555 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10504 : (TARGET_SSE) &&
10505 : #line 478 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10506 : (TARGET_SSE2))))
10507 : return -1;
10508 : return 3212; /* sse2_ieee_vmminv2df3_mask */
10509 :
10510 : default:
10511 : return -1;
10512 : }
10513 :
10514 : case 222:
10515 : if (pattern775 (x2) != 0
10516 : || !(
10517 : #line 389 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
10518 : (TARGET_AVX512F) &&
10519 : #line 7869 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10520 : (TARGET_AVX512FP16)))
10521 : return -1;
10522 : return 4439; /* avx512fp16_fmulcsh_v8hf_mask */
10523 :
10524 : case 223:
10525 : if (pattern775 (x2) != 0
10526 : || !(
10527 : #line 389 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
10528 : (TARGET_AVX512F) &&
10529 : #line 7869 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10530 : (TARGET_AVX512FP16)))
10531 : return -1;
10532 : return 4443; /* avx512fp16_fcmulcsh_v8hf_mask */
10533 :
10534 : case 59:
10535 : switch (pattern774 (x2))
10536 : {
10537 : case 0:
10538 : if (!(
10539 : #line 355 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
10540 : (TARGET_AVX512F) && (
10541 : #line 13937 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10542 : (TARGET_AVX512F) &&
10543 : #line 477 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10544 : (TARGET_AVX512FP16))))
10545 : return -1;
10546 : return 5431; /* avx512f_vmscalefv8hf_mask */
10547 :
10548 : case 1:
10549 : if (!
10550 : #line 355 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
10551 : (TARGET_AVX512F))
10552 : return -1;
10553 : return 5435; /* avx512f_vmscalefv4sf_mask */
10554 :
10555 : case 2:
10556 : if (!(
10557 : #line 355 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
10558 : (TARGET_AVX512F) && (
10559 : #line 13937 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10560 : (TARGET_AVX512F) &&
10561 : #line 478 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10562 : (TARGET_SSE2))))
10563 : return -1;
10564 : return 5439; /* avx512f_vmscalefv2df_mask */
10565 :
10566 : default:
10567 : return -1;
10568 : }
10569 :
10570 : case 166:
10571 : switch (pattern774 (x2))
10572 : {
10573 : case 0:
10574 : if (!(
10575 : #line 355 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
10576 : (TARGET_AVX512F) && (
10577 : #line 14370 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10578 : (TARGET_AVX512F) &&
10579 : #line 477 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10580 : (TARGET_AVX512FP16))))
10581 : return -1;
10582 : return 7092; /* avx512f_sgetexpv8hf_mask */
10583 :
10584 : case 1:
10585 : if (!
10586 : #line 355 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
10587 : (TARGET_AVX512F))
10588 : return -1;
10589 : return 7096; /* avx512f_sgetexpv4sf_mask */
10590 :
10591 : case 2:
10592 : if (!(
10593 : #line 355 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
10594 : (TARGET_AVX512F) && (
10595 : #line 14370 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10596 : (TARGET_AVX512F) &&
10597 : #line 478 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10598 : (TARGET_SSE2))))
10599 : return -1;
10600 : return 7100; /* avx512f_sgetexpv2df_mask */
10601 :
10602 : default:
10603 : return -1;
10604 : }
10605 :
10606 : case 95:
10607 : if (XWINT (x5, 0) != 1L)
10608 : return -1;
10609 : x6 = XVECEXP (x4, 0, 0);
10610 : operands[2] = x6;
10611 : x10 = XVECEXP (x4, 0, 1);
10612 : operands[3] = x10;
10613 : if (!const_0_to_255_operand (operands[3], E_SImode))
10614 : return -1;
10615 : x7 = XEXP (x3, 1);
10616 : operands[4] = x7;
10617 : x8 = XEXP (x3, 2);
10618 : operands[5] = x8;
10619 : if (!register_operand (operands[5], E_QImode))
10620 : return -1;
10621 : x9 = XEXP (x2, 1);
10622 : operands[1] = x9;
10623 : switch (GET_MODE (operands[0]))
10624 : {
10625 : case E_V8HFmode:
10626 : if (pattern1551 (x2,
10627 : E_V8HFmode) != 0
10628 : || !(
10629 : #line 355 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
10630 : (TARGET_AVX512F) && (
10631 : #line 14564 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10632 : (TARGET_AVX512F) &&
10633 : #line 477 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10634 : (TARGET_AVX512FP16))))
10635 : return -1;
10636 : return 7208; /* avx512f_rndscalev8hf_mask */
10637 :
10638 : case E_V4SFmode:
10639 : if (pattern1551 (x2,
10640 : E_V4SFmode) != 0
10641 : || !
10642 : #line 355 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
10643 : (TARGET_AVX512F))
10644 : return -1;
10645 : return 7212; /* avx512f_rndscalev4sf_mask */
10646 :
10647 : case E_V2DFmode:
10648 : if (pattern1551 (x2,
10649 : E_V2DFmode) != 0
10650 : || !(
10651 : #line 355 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
10652 : (TARGET_AVX512F) && (
10653 : #line 14564 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10654 : (TARGET_AVX512F) &&
10655 : #line 478 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10656 : (TARGET_SSE2))))
10657 : return -1;
10658 : return 7216; /* avx512f_rndscalev2df_mask */
10659 :
10660 : default:
10661 : return -1;
10662 : }
10663 :
10664 : default:
10665 : return -1;
10666 : }
10667 :
10668 : case 3:
10669 : x5 = XEXP (x2, 2);
10670 : if (GET_CODE (x5) != CONST_INT)
10671 : return -1;
10672 : x6 = XVECEXP (x4, 0, 0);
10673 : operands[1] = x6;
10674 : x10 = XVECEXP (x4, 0, 1);
10675 : operands[2] = x10;
10676 : x11 = XVECEXP (x4, 0, 2);
10677 : operands[3] = x11;
10678 : switch (XINT (x4, 1))
10679 : {
10680 : case 193:
10681 : switch (pattern1124 (x2))
10682 : {
10683 : case 0:
10684 : if (!(
10685 : #line 355 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
10686 : (TARGET_AVX512F) && (
10687 : #line 4269 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10688 : (TARGET_AVX512DQ || (VALID_AVX512FP16_REG_MODE (V8HFmode))) &&
10689 : #line 477 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10690 : (TARGET_AVX512FP16))))
10691 : return -1;
10692 : return 3266; /* reducesv8hf_mask */
10693 :
10694 : case 1:
10695 : if (!(
10696 : #line 355 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
10697 : (TARGET_AVX512F) &&
10698 : #line 4269 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10699 : (TARGET_AVX512DQ || (VALID_AVX512FP16_REG_MODE (V4SFmode)))))
10700 : return -1;
10701 : return 3270; /* reducesv4sf_mask */
10702 :
10703 : case 2:
10704 : if (!(
10705 : #line 355 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
10706 : (TARGET_AVX512F) && (
10707 : #line 4269 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10708 : (TARGET_AVX512DQ || (VALID_AVX512FP16_REG_MODE (V2DFmode))) &&
10709 : #line 478 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10710 : (TARGET_SSE2))))
10711 : return -1;
10712 : return 3274; /* reducesv2df_mask */
10713 :
10714 : default:
10715 : return -1;
10716 : }
10717 :
10718 : case 218:
10719 : switch (pattern1125 (x2))
10720 : {
10721 : case 0:
10722 : if (!(
10723 : #line 371 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
10724 : (TARGET_AVX512F) &&
10725 : #line 7834 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10726 : (TARGET_AVX512FP16)))
10727 : return -1;
10728 : return 4426; /* avx512fp16_fma_fmaddcsh_v8hf_maskz */
10729 :
10730 : case 1:
10731 : if (!
10732 : #line 7854 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10733 : (TARGET_AVX512FP16))
10734 : return -1;
10735 : return 4433; /* avx512fp16_fmaddcsh_v8hf_mask */
10736 :
10737 : default:
10738 : return -1;
10739 : }
10740 :
10741 : case 220:
10742 : switch (pattern1125 (x2))
10743 : {
10744 : case 0:
10745 : if (!(
10746 : #line 371 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
10747 : (TARGET_AVX512F) &&
10748 : #line 7834 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10749 : (TARGET_AVX512FP16)))
10750 : return -1;
10751 : return 4430; /* avx512fp16_fma_fcmaddcsh_v8hf_maskz */
10752 :
10753 : case 1:
10754 : if (!
10755 : #line 7854 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10756 : (TARGET_AVX512FP16))
10757 : return -1;
10758 : return 4435; /* avx512fp16_fcmaddcsh_v8hf_mask */
10759 :
10760 : default:
10761 : return -1;
10762 : }
10763 :
10764 : case 195:
10765 : if (XWINT (x5, 0) != 1L
10766 : || !const_0_to_15_operand (operands[3], E_SImode))
10767 : return -1;
10768 : x7 = XEXP (x3, 1);
10769 : operands[4] = x7;
10770 : x8 = XEXP (x3, 2);
10771 : operands[5] = x8;
10772 : if (!register_operand (operands[5], E_QImode))
10773 : return -1;
10774 : x9 = XEXP (x2, 1);
10775 : if (!rtx_equal_p (x9, operands[1]))
10776 : return -1;
10777 : switch (GET_MODE (operands[0]))
10778 : {
10779 : case E_V4SFmode:
10780 : if (pattern1122 (x2,
10781 : E_V4SFmode) != 0
10782 : || !(
10783 : #line 355 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
10784 : (TARGET_AVX512F) &&
10785 : #line 30536 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10786 : (TARGET_AVX512DQ)))
10787 : return -1;
10788 : return 10048; /* avx512dq_rangesv4sf_mask */
10789 :
10790 : case E_V2DFmode:
10791 : if (pattern1122 (x2,
10792 : E_V2DFmode) != 0
10793 : || !(
10794 : #line 355 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
10795 : (TARGET_AVX512F) && (
10796 : #line 30536 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10797 : (TARGET_AVX512DQ) &&
10798 : #line 473 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10799 : (TARGET_SSE2))))
10800 : return -1;
10801 : return 10052; /* avx512dq_rangesv2df_mask */
10802 :
10803 : default:
10804 : return -1;
10805 : }
10806 :
10807 : case 167:
10808 : if (XWINT (x5, 0) != 1L
10809 : || !const_0_to_15_operand (operands[3], E_SImode))
10810 : return -1;
10811 : switch (pattern1123 (x2))
10812 : {
10813 : case 0:
10814 : if (!(
10815 : #line 355 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
10816 : (TARGET_AVX512F) && (
10817 : #line 30604 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10818 : (TARGET_AVX512F) &&
10819 : #line 477 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10820 : (TARGET_AVX512FP16))))
10821 : return -1;
10822 : return 10116; /* avx512f_vgetmantv8hf_mask */
10823 :
10824 : case 1:
10825 : if (!
10826 : #line 355 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
10827 : (TARGET_AVX512F))
10828 : return -1;
10829 : return 10120; /* avx512f_vgetmantv4sf_mask */
10830 :
10831 : case 2:
10832 : if (!(
10833 : #line 355 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
10834 : (TARGET_AVX512F) && (
10835 : #line 30604 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10836 : (TARGET_AVX512F) &&
10837 : #line 478 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10838 : (TARGET_SSE2))))
10839 : return -1;
10840 : return 10124; /* avx512f_vgetmantv2df_mask */
10841 :
10842 : default:
10843 : return -1;
10844 : }
10845 :
10846 : case 279:
10847 : switch (pattern1124 (x2))
10848 : {
10849 : case 0:
10850 : if (!(
10851 : #line 355 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
10852 : (TARGET_AVX512F) && (
10853 : #line 33376 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10854 : (TARGET_AVX10_2) &&
10855 : #line 477 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10856 : (TARGET_AVX512FP16))))
10857 : return -1;
10858 : return 11014; /* avx10_2_minmaxsv8hf_mask */
10859 :
10860 : case 1:
10861 : if (!(
10862 : #line 355 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
10863 : (TARGET_AVX512F) &&
10864 : #line 33376 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10865 : (TARGET_AVX10_2)))
10866 : return -1;
10867 : return 11018; /* avx10_2_minmaxsv4sf_mask */
10868 :
10869 : case 2:
10870 : if (!(
10871 : #line 355 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
10872 : (TARGET_AVX512F) && (
10873 : #line 33376 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10874 : (TARGET_AVX10_2) &&
10875 : #line 478 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10876 : (TARGET_SSE2))))
10877 : return -1;
10878 : return 11022; /* avx10_2_minmaxsv2df_mask */
10879 :
10880 : default:
10881 : return -1;
10882 : }
10883 :
10884 : default:
10885 : return -1;
10886 : }
10887 :
10888 : case 4:
10889 : if (XINT (x4, 1) != 164)
10890 : return -1;
10891 : x6 = XVECEXP (x4, 0, 0);
10892 : operands[1] = x6;
10893 : x10 = XVECEXP (x4, 0, 1);
10894 : operands[2] = x10;
10895 : x11 = XVECEXP (x4, 0, 2);
10896 : operands[3] = x11;
10897 : x12 = XVECEXP (x4, 0, 3);
10898 : operands[4] = x12;
10899 : if (!const_0_to_255_operand (operands[4], E_SImode))
10900 : return -1;
10901 : x7 = XEXP (x3, 1);
10902 : switch (GET_CODE (x7))
10903 : {
10904 : case CONST_INT:
10905 : case CONST_DOUBLE:
10906 : case CONST_VECTOR:
10907 : operands[5] = x7;
10908 : x5 = XEXP (x2, 2);
10909 : if (x5 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
10910 : return -1;
10911 : x8 = XEXP (x3, 2);
10912 : operands[6] = x8;
10913 : if (!register_operand (operands[6], E_QImode))
10914 : return -1;
10915 : x9 = XEXP (x2, 1);
10916 : if (!rtx_equal_p (x9, operands[2]))
10917 : return -1;
10918 : switch (GET_MODE (operands[0]))
10919 : {
10920 : case E_V4SFmode:
10921 : if (pattern1654 (x2,
10922 : E_V4SFmode,
10923 : E_V4SImode) != 0
10924 : || !
10925 : #line 154 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
10926 : (TARGET_AVX512F))
10927 : return -1;
10928 : return 7161; /* avx512f_sfixupimmv4sf_maskz_1 */
10929 :
10930 : case E_V2DFmode:
10931 : if (pattern1654 (x2,
10932 : E_V2DFmode,
10933 : E_V2DImode) != 0
10934 : || !(
10935 : #line 154 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
10936 : (TARGET_AVX512F) && (
10937 : #line 14519 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10938 : (TARGET_AVX512F) &&
10939 : #line 473 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10940 : (TARGET_SSE2))))
10941 : return -1;
10942 : return 7165; /* avx512f_sfixupimmv2df_maskz_1 */
10943 :
10944 : default:
10945 : return -1;
10946 : }
10947 :
10948 : case REG:
10949 : case SUBREG:
10950 : if (!rtx_equal_p (x7, operands[2]))
10951 : return -1;
10952 : x8 = XEXP (x3, 2);
10953 : if (x8 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
10954 : return -1;
10955 : x5 = XEXP (x2, 2);
10956 : operands[5] = x5;
10957 : if (!register_operand (operands[5], E_QImode))
10958 : return -1;
10959 : x9 = XEXP (x2, 1);
10960 : if (!rtx_equal_p (x9, operands[1]))
10961 : return -1;
10962 : switch (GET_MODE (operands[0]))
10963 : {
10964 : case E_V4SFmode:
10965 : if (pattern1655 (x2,
10966 : E_V4SImode,
10967 : E_V4SFmode) != 0
10968 : || !
10969 : #line 14538 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10970 : (TARGET_AVX512F))
10971 : return -1;
10972 : return 7167; /* avx512f_sfixupimmv4sf_mask */
10973 :
10974 : case E_V2DFmode:
10975 : if (pattern1655 (x2,
10976 : E_V2DImode,
10977 : E_V2DFmode) != 0
10978 : || !(
10979 : #line 14538 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10980 : (TARGET_AVX512F) &&
10981 : #line 473 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10982 : (TARGET_SSE2)))
10983 : return -1;
10984 : return 7169; /* avx512f_sfixupimmv2df_mask */
10985 :
10986 : default:
10987 : return -1;
10988 : }
10989 :
10990 : default:
10991 : return -1;
10992 : }
10993 :
10994 : default:
10995 : return -1;
10996 : }
10997 : }
10998 :
10999 : int
11000 : recog_164 (rtx x1 ATTRIBUTE_UNUSED,
11001 : rtx_insn *insn ATTRIBUTE_UNUSED,
11002 : int *pnum_clobbers ATTRIBUTE_UNUSED)
11003 : {
11004 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
11005 : rtx x2, x3, x4, x5, x6;
11006 : int res ATTRIBUTE_UNUSED;
11007 : x2 = XEXP (x1, 1);
11008 : x3 = XEXP (x2, 0);
11009 : x4 = XEXP (x3, 0);
11010 : x5 = XEXP (x4, 0);
11011 : operands[1] = x5;
11012 : switch (pattern650 (x2))
11013 : {
11014 : case 0:
11015 : if (pattern1396 (x2,
11016 : E_V32HFmode,
11017 : E_SImode) != 0
11018 : || !(
11019 : #line 6498 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11020 : (TARGET_AVX512F && (64 == 64 || TARGET_AVX512VL) && 1) &&
11021 : #line 6276 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11022 : (TARGET_AVX512FP16)))
11023 : return -1;
11024 : return 4002; /* fma_fnmadd_v32hf_maskz_1 */
11025 :
11026 : case 1:
11027 : if (pattern1396 (x2,
11028 : E_V16HFmode,
11029 : E_HImode) != 0
11030 : || !(
11031 : #line 6498 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11032 : (TARGET_AVX512F && (32 == 64 || TARGET_AVX512VL) && 1) &&
11033 : #line 6277 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11034 : (TARGET_AVX512FP16 && TARGET_AVX512VL)))
11035 : return -1;
11036 : return 4006; /* fma_fnmadd_v16hf_maskz_1 */
11037 :
11038 : case 2:
11039 : if (pattern1396 (x2,
11040 : E_V8HFmode,
11041 : E_QImode) != 0
11042 : || !(
11043 : #line 6498 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11044 : (TARGET_AVX512F && (16 == 64 || TARGET_AVX512VL) && 1) &&
11045 : #line 6278 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11046 : (TARGET_AVX512FP16 && TARGET_AVX512VL)))
11047 : return -1;
11048 : return 4008; /* fma_fnmadd_v8hf_maskz_1 */
11049 :
11050 : case 3:
11051 : if (pattern1396 (x2,
11052 : E_V16SFmode,
11053 : E_HImode) != 0
11054 : || !
11055 : #line 6498 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11056 : (TARGET_AVX512F && (64 == 64 || TARGET_AVX512VL) && 1))
11057 : return -1;
11058 : return 4012; /* fma_fnmadd_v16sf_maskz_1 */
11059 :
11060 : case 4:
11061 : if (pattern1396 (x2,
11062 : E_V8SFmode,
11063 : E_QImode) != 0
11064 : || !(
11065 : #line 6498 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11066 : (TARGET_AVX512F && (32 == 64 || TARGET_AVX512VL) && 1) &&
11067 : #line 6280 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11068 : (TARGET_AVX512VL)))
11069 : return -1;
11070 : return 4016; /* fma_fnmadd_v8sf_maskz_1 */
11071 :
11072 : case 5:
11073 : if (pattern1396 (x2,
11074 : E_V4SFmode,
11075 : E_QImode) != 0
11076 : || !(
11077 : #line 6498 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11078 : (TARGET_AVX512F && (16 == 64 || TARGET_AVX512VL) && 1) &&
11079 : #line 6280 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11080 : (TARGET_AVX512VL)))
11081 : return -1;
11082 : return 4018; /* fma_fnmadd_v4sf_maskz_1 */
11083 :
11084 : case 6:
11085 : if (pattern1396 (x2,
11086 : E_V8DFmode,
11087 : E_QImode) != 0
11088 : || !
11089 : #line 6498 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11090 : (TARGET_AVX512F && (64 == 64 || TARGET_AVX512VL) && 1))
11091 : return -1;
11092 : return 4021; /* fma_fnmadd_v8df_maskz_1 */
11093 :
11094 : case 7:
11095 : if (pattern1396 (x2,
11096 : E_V4DFmode,
11097 : E_QImode) != 0
11098 : || !(
11099 : #line 6498 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11100 : (TARGET_AVX512F && (32 == 64 || TARGET_AVX512VL) && 1) &&
11101 : #line 6281 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11102 : (TARGET_AVX512VL)))
11103 : return -1;
11104 : return 4025; /* fma_fnmadd_v4df_maskz_1 */
11105 :
11106 : case 8:
11107 : if (pattern1396 (x2,
11108 : E_V2DFmode,
11109 : E_QImode) != 0
11110 : || !(
11111 : #line 6498 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11112 : (TARGET_AVX512F && (16 == 64 || TARGET_AVX512VL) && 1) &&
11113 : #line 6281 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11114 : (TARGET_AVX512VL)))
11115 : return -1;
11116 : return 4027; /* fma_fnmadd_v2df_maskz_1 */
11117 :
11118 : case 9:
11119 : if (pattern1397 (x2,
11120 : E_SImode,
11121 : E_V32BFmode) != 0
11122 : || !
11123 : #line 32919 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11124 : (TARGET_AVX10_2))
11125 : return -1;
11126 : return 10714; /* avx10_2_fnmaddbf16_v32bf_maskz_1 */
11127 :
11128 : case 10:
11129 : if (pattern1397 (x2,
11130 : E_HImode,
11131 : E_V16BFmode) != 0
11132 : || !
11133 : #line 32919 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11134 : (TARGET_AVX10_2))
11135 : return -1;
11136 : return 10716; /* avx10_2_fnmaddbf16_v16bf_maskz_1 */
11137 :
11138 : case 11:
11139 : if (pattern1397 (x2,
11140 : E_QImode,
11141 : E_V8BFmode) != 0
11142 : || !
11143 : #line 32919 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11144 : (TARGET_AVX10_2))
11145 : return -1;
11146 : return 10718; /* avx10_2_fnmaddbf16_v8bf_maskz_1 */
11147 :
11148 : case 12:
11149 : if (pattern1398 (x2,
11150 : E_V4SFmode) != 0
11151 : || !
11152 : #line 7334 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11153 : (TARGET_FMA4))
11154 : return -1;
11155 : return 4357; /* *fma4i_vmfnmadd_v4sf */
11156 :
11157 : case 13:
11158 : if (pattern1398 (x2,
11159 : E_V2DFmode) != 0
11160 : || !(
11161 : #line 7334 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11162 : (TARGET_FMA4) &&
11163 : #line 473 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11164 : (TARGET_SSE2)))
11165 : return -1;
11166 : return 4358; /* *fma4i_vmfnmadd_v2df */
11167 :
11168 : case 14:
11169 : if (pattern1301 (x2,
11170 : E_V32HFmode,
11171 : E_SImode) != 0)
11172 : return -1;
11173 : if (nonimmediate_operand (operands[1], E_V32HFmode)
11174 : && vector_operand (operands[3], E_V32HFmode))
11175 : {
11176 : x6 = XEXP (x2, 1);
11177 : if (rtx_equal_p (x6, operands[1])
11178 : && (
11179 : #line 6541 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11180 : (TARGET_AVX512F && 1) &&
11181 : #line 514 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11182 : (TARGET_AVX512FP16)))
11183 : return 4028; /* avx512bw_fnmadd_v32hf_mask */
11184 : }
11185 : if (!vector_operand (operands[1], E_V32HFmode)
11186 : || !nonimmediate_operand (operands[3], E_V32HFmode))
11187 : return -1;
11188 : x6 = XEXP (x2, 1);
11189 : if (!rtx_equal_p (x6, operands[3])
11190 : || !(
11191 : #line 6559 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11192 : (TARGET_AVX512F && 1) &&
11193 : #line 514 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11194 : (TARGET_AVX512FP16)))
11195 : return -1;
11196 : return 4040; /* avx512bw_fnmadd_v32hf_mask3 */
11197 :
11198 : case 15:
11199 : if (pattern1301 (x2,
11200 : E_V16HFmode,
11201 : E_HImode) != 0)
11202 : return -1;
11203 : if (nonimmediate_operand (operands[1], E_V16HFmode)
11204 : && vector_operand (operands[3], E_V16HFmode))
11205 : {
11206 : x6 = XEXP (x2, 1);
11207 : if (rtx_equal_p (x6, operands[1])
11208 : && (
11209 : #line 6541 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11210 : (TARGET_AVX512F && 1) &&
11211 : #line 515 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11212 : (TARGET_AVX512FP16 && TARGET_AVX512VL)))
11213 : return 4030; /* avx512vl_fnmadd_v16hf_mask */
11214 : }
11215 : if (!vector_operand (operands[1], E_V16HFmode)
11216 : || !nonimmediate_operand (operands[3], E_V16HFmode))
11217 : return -1;
11218 : x6 = XEXP (x2, 1);
11219 : if (!rtx_equal_p (x6, operands[3])
11220 : || !(
11221 : #line 6559 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11222 : (TARGET_AVX512F && 1) &&
11223 : #line 515 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11224 : (TARGET_AVX512FP16 && TARGET_AVX512VL)))
11225 : return -1;
11226 : return 4042; /* avx512vl_fnmadd_v16hf_mask3 */
11227 :
11228 : case 16:
11229 : if (pattern1301 (x2,
11230 : E_V8HFmode,
11231 : E_QImode) != 0)
11232 : return -1;
11233 : if (nonimmediate_operand (operands[1], E_V8HFmode)
11234 : && vector_operand (operands[3], E_V8HFmode))
11235 : {
11236 : x6 = XEXP (x2, 1);
11237 : if (rtx_equal_p (x6, operands[1])
11238 : && (
11239 : #line 6541 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11240 : (TARGET_AVX512F && 1) &&
11241 : #line 516 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11242 : (TARGET_AVX512FP16 && TARGET_AVX512VL)))
11243 : return 4031; /* avx512fp16_fnmadd_v8hf_mask */
11244 : }
11245 : if (!vector_operand (operands[1], E_V8HFmode)
11246 : || !nonimmediate_operand (operands[3], E_V8HFmode))
11247 : return -1;
11248 : x6 = XEXP (x2, 1);
11249 : if (!rtx_equal_p (x6, operands[3])
11250 : || !(
11251 : #line 6559 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11252 : (TARGET_AVX512F && 1) &&
11253 : #line 516 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11254 : (TARGET_AVX512FP16 && TARGET_AVX512VL)))
11255 : return -1;
11256 : return 4043; /* avx512fp16_fnmadd_v8hf_mask3 */
11257 :
11258 : case 17:
11259 : if (pattern1301 (x2,
11260 : E_V16SFmode,
11261 : E_HImode) != 0)
11262 : return -1;
11263 : if (nonimmediate_operand (operands[1], E_V16SFmode)
11264 : && vector_operand (operands[3], E_V16SFmode))
11265 : {
11266 : x6 = XEXP (x2, 1);
11267 : if (rtx_equal_p (x6, operands[1])
11268 : &&
11269 : #line 6541 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11270 : (TARGET_AVX512F && 1))
11271 : return 4032; /* avx512f_fnmadd_v16sf_mask */
11272 : }
11273 : if (!vector_operand (operands[1], E_V16SFmode)
11274 : || !nonimmediate_operand (operands[3], E_V16SFmode))
11275 : return -1;
11276 : x6 = XEXP (x2, 1);
11277 : if (!rtx_equal_p (x6, operands[3])
11278 : || !
11279 : #line 6559 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11280 : (TARGET_AVX512F && 1))
11281 : return -1;
11282 : return 4044; /* avx512f_fnmadd_v16sf_mask3 */
11283 :
11284 : case 18:
11285 : if (pattern1301 (x2,
11286 : E_V8SFmode,
11287 : E_QImode) != 0)
11288 : return -1;
11289 : if (nonimmediate_operand (operands[1], E_V8SFmode)
11290 : && vector_operand (operands[3], E_V8SFmode))
11291 : {
11292 : x6 = XEXP (x2, 1);
11293 : if (rtx_equal_p (x6, operands[1])
11294 : && (
11295 : #line 6541 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11296 : (TARGET_AVX512F && 1) &&
11297 : #line 517 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11298 : (TARGET_AVX512VL)))
11299 : return 4034; /* avx512vl_fnmadd_v8sf_mask */
11300 : }
11301 : if (!vector_operand (operands[1], E_V8SFmode)
11302 : || !nonimmediate_operand (operands[3], E_V8SFmode))
11303 : return -1;
11304 : x6 = XEXP (x2, 1);
11305 : if (!rtx_equal_p (x6, operands[3])
11306 : || !(
11307 : #line 6559 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11308 : (TARGET_AVX512F && 1) &&
11309 : #line 517 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11310 : (TARGET_AVX512VL)))
11311 : return -1;
11312 : return 4046; /* avx512vl_fnmadd_v8sf_mask3 */
11313 :
11314 : case 19:
11315 : if (pattern1301 (x2,
11316 : E_V4SFmode,
11317 : E_QImode) != 0)
11318 : return -1;
11319 : if (nonimmediate_operand (operands[1], E_V4SFmode)
11320 : && vector_operand (operands[3], E_V4SFmode))
11321 : {
11322 : x6 = XEXP (x2, 1);
11323 : if (rtx_equal_p (x6, operands[1])
11324 : && (
11325 : #line 6541 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11326 : (TARGET_AVX512F && 1) &&
11327 : #line 517 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11328 : (TARGET_AVX512VL)))
11329 : return 4035; /* avx512vl_fnmadd_v4sf_mask */
11330 : }
11331 : if (!vector_operand (operands[1], E_V4SFmode)
11332 : || !nonimmediate_operand (operands[3], E_V4SFmode))
11333 : return -1;
11334 : x6 = XEXP (x2, 1);
11335 : if (!rtx_equal_p (x6, operands[3])
11336 : || !(
11337 : #line 6559 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11338 : (TARGET_AVX512F && 1) &&
11339 : #line 517 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11340 : (TARGET_AVX512VL)))
11341 : return -1;
11342 : return 4047; /* avx512vl_fnmadd_v4sf_mask3 */
11343 :
11344 : case 20:
11345 : if (pattern1301 (x2,
11346 : E_V8DFmode,
11347 : E_QImode) != 0)
11348 : return -1;
11349 : if (nonimmediate_operand (operands[1], E_V8DFmode)
11350 : && vector_operand (operands[3], E_V8DFmode))
11351 : {
11352 : x6 = XEXP (x2, 1);
11353 : if (rtx_equal_p (x6, operands[1])
11354 : &&
11355 : #line 6541 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11356 : (TARGET_AVX512F && 1))
11357 : return 4036; /* avx512f_fnmadd_v8df_mask */
11358 : }
11359 : if (!vector_operand (operands[1], E_V8DFmode)
11360 : || !nonimmediate_operand (operands[3], E_V8DFmode))
11361 : return -1;
11362 : x6 = XEXP (x2, 1);
11363 : if (!rtx_equal_p (x6, operands[3])
11364 : || !
11365 : #line 6559 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11366 : (TARGET_AVX512F && 1))
11367 : return -1;
11368 : return 4048; /* avx512f_fnmadd_v8df_mask3 */
11369 :
11370 : case 21:
11371 : if (pattern1301 (x2,
11372 : E_V4DFmode,
11373 : E_QImode) != 0)
11374 : return -1;
11375 : if (nonimmediate_operand (operands[1], E_V4DFmode)
11376 : && vector_operand (operands[3], E_V4DFmode))
11377 : {
11378 : x6 = XEXP (x2, 1);
11379 : if (rtx_equal_p (x6, operands[1])
11380 : && (
11381 : #line 6541 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11382 : (TARGET_AVX512F && 1) &&
11383 : #line 518 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11384 : (TARGET_AVX512VL)))
11385 : return 4038; /* avx512vl_fnmadd_v4df_mask */
11386 : }
11387 : if (!vector_operand (operands[1], E_V4DFmode)
11388 : || !nonimmediate_operand (operands[3], E_V4DFmode))
11389 : return -1;
11390 : x6 = XEXP (x2, 1);
11391 : if (!rtx_equal_p (x6, operands[3])
11392 : || !(
11393 : #line 6559 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11394 : (TARGET_AVX512F && 1) &&
11395 : #line 518 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11396 : (TARGET_AVX512VL)))
11397 : return -1;
11398 : return 4050; /* avx512vl_fnmadd_v4df_mask3 */
11399 :
11400 : case 22:
11401 : if (pattern1301 (x2,
11402 : E_V2DFmode,
11403 : E_QImode) != 0)
11404 : return -1;
11405 : if (nonimmediate_operand (operands[1], E_V2DFmode)
11406 : && vector_operand (operands[3], E_V2DFmode))
11407 : {
11408 : x6 = XEXP (x2, 1);
11409 : if (rtx_equal_p (x6, operands[1])
11410 : && (
11411 : #line 6541 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11412 : (TARGET_AVX512F && 1) &&
11413 : #line 518 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11414 : (TARGET_AVX512VL)))
11415 : return 4039; /* avx512vl_fnmadd_v2df_mask */
11416 : }
11417 : if (!vector_operand (operands[1], E_V2DFmode)
11418 : || !nonimmediate_operand (operands[3], E_V2DFmode))
11419 : return -1;
11420 : x6 = XEXP (x2, 1);
11421 : if (!rtx_equal_p (x6, operands[3])
11422 : || !(
11423 : #line 6559 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11424 : (TARGET_AVX512F && 1) &&
11425 : #line 518 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11426 : (TARGET_AVX512VL)))
11427 : return -1;
11428 : return 4051; /* avx512vl_fnmadd_v2df_mask3 */
11429 :
11430 : case 23:
11431 : if (pattern1302 (x2,
11432 : E_SImode,
11433 : E_V32BFmode) != 0)
11434 : return -1;
11435 : x6 = XEXP (x2, 1);
11436 : if (rtx_equal_p (x6, operands[1])
11437 : &&
11438 : #line 32938 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11439 : (TARGET_AVX10_2))
11440 : return 10719; /* avx10_2_fnmaddbf16_v32bf_mask */
11441 : if (!rtx_equal_p (x6, operands[3])
11442 : || !
11443 : #line 32956 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11444 : (TARGET_AVX10_2))
11445 : return -1;
11446 : return 10722; /* avx10_2_fnmaddbf16_v32bf_mask3 */
11447 :
11448 : case 24:
11449 : if (pattern1302 (x2,
11450 : E_HImode,
11451 : E_V16BFmode) != 0)
11452 : return -1;
11453 : x6 = XEXP (x2, 1);
11454 : if (rtx_equal_p (x6, operands[1])
11455 : &&
11456 : #line 32938 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11457 : (TARGET_AVX10_2))
11458 : return 10720; /* avx10_2_fnmaddbf16_v16bf_mask */
11459 : if (!rtx_equal_p (x6, operands[3])
11460 : || !
11461 : #line 32956 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11462 : (TARGET_AVX10_2))
11463 : return -1;
11464 : return 10723; /* avx10_2_fnmaddbf16_v16bf_mask3 */
11465 :
11466 : case 25:
11467 : if (pattern1302 (x2,
11468 : E_QImode,
11469 : E_V8BFmode) != 0)
11470 : return -1;
11471 : x6 = XEXP (x2, 1);
11472 : if (rtx_equal_p (x6, operands[1])
11473 : &&
11474 : #line 32938 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11475 : (TARGET_AVX10_2))
11476 : return 10721; /* avx10_2_fnmaddbf16_v8bf_mask */
11477 : if (!rtx_equal_p (x6, operands[3])
11478 : || !
11479 : #line 32956 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11480 : (TARGET_AVX10_2))
11481 : return -1;
11482 : return 10724; /* avx10_2_fnmaddbf16_v8bf_mask3 */
11483 :
11484 : case 26:
11485 : if (pattern1399 (x2,
11486 : E_V8HFmode) != 0
11487 : || !(
11488 : #line 6979 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11489 : (TARGET_FMA || TARGET_AVX512F) &&
11490 : #line 477 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11491 : (TARGET_AVX512FP16)))
11492 : return -1;
11493 : return 4269; /* *fmai_fnmadd_v8hf */
11494 :
11495 : case 27:
11496 : if (pattern1399 (x2,
11497 : E_V4SFmode) != 0
11498 : || !
11499 : #line 6979 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11500 : (TARGET_FMA || TARGET_AVX512F))
11501 : return -1;
11502 : return 4271; /* *fmai_fnmadd_v4sf */
11503 :
11504 : case 28:
11505 : if (pattern1399 (x2,
11506 : E_V2DFmode) != 0
11507 : || !(
11508 : #line 6979 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11509 : (TARGET_FMA || TARGET_AVX512F) &&
11510 : #line 478 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11511 : (TARGET_SSE2)))
11512 : return -1;
11513 : return 4273; /* *fmai_fnmadd_v2df */
11514 :
11515 : case 29:
11516 : return recog_163 (x1, insn, pnum_clobbers);
11517 :
11518 : default:
11519 : return -1;
11520 : }
11521 : }
11522 :
11523 : int
11524 : recog_168 (rtx x1 ATTRIBUTE_UNUSED,
11525 : rtx_insn *insn ATTRIBUTE_UNUSED,
11526 : int *pnum_clobbers ATTRIBUTE_UNUSED)
11527 : {
11528 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
11529 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
11530 : rtx x10;
11531 : int res ATTRIBUTE_UNUSED;
11532 : x2 = XEXP (x1, 1);
11533 : x3 = XEXP (x2, 0);
11534 : x4 = XEXP (x3, 0);
11535 : x5 = XEXP (x4, 1);
11536 : operands[2] = x5;
11537 : x6 = XEXP (x2, 1);
11538 : operands[3] = x6;
11539 : x7 = XEXP (x2, 2);
11540 : operands[4] = x7;
11541 : if (!register_operand (operands[4], E_QImode))
11542 : return -1;
11543 : x8 = XEXP (x3, 1);
11544 : x9 = XVECEXP (x8, 0, 0);
11545 : switch (XWINT (x9, 0))
11546 : {
11547 : case 1L:
11548 : x10 = XVECEXP (x8, 0, 1);
11549 : if (XWINT (x10, 0) != 3L)
11550 : return -1;
11551 : switch (GET_MODE (operands[0]))
11552 : {
11553 : case E_V2DFmode:
11554 : if (pattern1593 (x2,
11555 : E_V2DFmode,
11556 : E_V4DFmode) != 0
11557 : || !
11558 : #line 13709 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11559 : (TARGET_AVX512VL))
11560 : return -1;
11561 : return 5417; /* avx512vl_unpckhpd128_mask */
11562 :
11563 : case E_V2DImode:
11564 : if (pattern1594 (x2,
11565 : E_V2DImode,
11566 : E_V4DImode) != 0
11567 : || !(
11568 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11569 : (TARGET_AVX512F) &&
11570 : #line 14820 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11571 : (TARGET_SSE2 && TARGET_AVX512VL)))
11572 : return -1;
11573 : return 7237; /* vec_interleave_highv2di_mask */
11574 :
11575 : default:
11576 : return -1;
11577 : }
11578 :
11579 : case 0L:
11580 : x10 = XVECEXP (x8, 0, 1);
11581 : if (XWINT (x10, 0) != 2L)
11582 : return -1;
11583 : switch (GET_MODE (operands[0]))
11584 : {
11585 : case E_V2DFmode:
11586 : if (pattern1593 (x2,
11587 : E_V2DFmode,
11588 : E_V4DFmode) != 0
11589 : || !
11590 : #line 13852 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11591 : (TARGET_AVX512VL))
11592 : return -1;
11593 : return 5427; /* avx512vl_unpcklpd128_mask */
11594 :
11595 : case E_V2DImode:
11596 : if (pattern1594 (x2,
11597 : E_V2DImode,
11598 : E_V4DImode) != 0
11599 : || !(
11600 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11601 : (TARGET_AVX512F) &&
11602 : #line 14870 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11603 : (TARGET_SSE2 && TARGET_AVX512VL)))
11604 : return -1;
11605 : return 7243; /* vec_interleave_lowv2di_mask */
11606 :
11607 : default:
11608 : return -1;
11609 : }
11610 :
11611 : default:
11612 : return -1;
11613 : }
11614 : }
11615 :
11616 : int
11617 : recog_171 (rtx x1 ATTRIBUTE_UNUSED,
11618 : rtx_insn *insn ATTRIBUTE_UNUSED,
11619 : int *pnum_clobbers ATTRIBUTE_UNUSED)
11620 : {
11621 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
11622 : rtx x2, x3, x4, x5, x6, x7, x8;
11623 : int res ATTRIBUTE_UNUSED;
11624 : x2 = XEXP (x1, 1);
11625 : x3 = XEXP (x2, 0);
11626 : x4 = XEXP (x3, 1);
11627 : x5 = XVECEXP (x4, 0, 0);
11628 : if (GET_CODE (x5) != CONST_INT)
11629 : return -1;
11630 : operands[2] = x5;
11631 : if (const_0_to_7_operand (operands[2], E_VOIDmode))
11632 : {
11633 : x6 = XVECEXP (x4, 0, 1);
11634 : operands[3] = x6;
11635 : if (const_0_to_7_operand (operands[3], E_VOIDmode))
11636 : {
11637 : x7 = XEXP (x2, 1);
11638 : operands[4] = x7;
11639 : x8 = XEXP (x2, 2);
11640 : operands[5] = x8;
11641 : if (register_operand (operands[5], E_QImode))
11642 : {
11643 : switch (GET_MODE (operands[0]))
11644 : {
11645 : case E_V2DFmode:
11646 : if (pattern1556 (x2,
11647 : E_V2DFmode,
11648 : E_V8DFmode) == 0
11649 : &&
11650 : #line 12762 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11651 : (TARGET_AVX512DQ
11652 : && INTVAL (operands[2]) % 2 == 0
11653 : && INTVAL (operands[2]) == INTVAL (operands[3]) - 1
11654 : && (!MEM_P (operands[0]) || rtx_equal_p (operands[0], operands[4]))))
11655 : return 5349; /* avx512dq_vextractf64x2_1_mask */
11656 : break;
11657 :
11658 : case E_V2DImode:
11659 : if (pattern1556 (x2,
11660 : E_V2DImode,
11661 : E_V8DImode) == 0
11662 : &&
11663 : #line 12762 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11664 : (TARGET_AVX512DQ
11665 : && INTVAL (operands[2]) % 2 == 0
11666 : && INTVAL (operands[2]) == INTVAL (operands[3]) - 1
11667 : && (!MEM_P (operands[0]) || rtx_equal_p (operands[0], operands[4]))))
11668 : return 5350; /* avx512dq_vextracti64x2_1_mask */
11669 : break;
11670 :
11671 : default:
11672 : break;
11673 : }
11674 : }
11675 : }
11676 : }
11677 : x6 = XVECEXP (x4, 0, 1);
11678 : if (GET_CODE (x6) != CONST_INT)
11679 : return -1;
11680 : x7 = XEXP (x2, 1);
11681 : operands[2] = x7;
11682 : x8 = XEXP (x2, 2);
11683 : operands[3] = x8;
11684 : if (!register_operand (operands[3], E_QImode))
11685 : return -1;
11686 : switch (XWINT (x5, 0))
11687 : {
11688 : case 0L:
11689 : if (XWINT (x6, 0) != 1L)
11690 : return -1;
11691 : switch (GET_MODE (operands[0]))
11692 : {
11693 : case E_V2DImode:
11694 : if (!nonimmediate_operand (operands[0], E_V2DImode)
11695 : || pattern1557 (x2,
11696 : E_V2DImode,
11697 : E_V4DImode) != 0
11698 : || !
11699 : #line 13190 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11700 : (TARGET_AVX512DQ
11701 : && TARGET_AVX512VL
11702 : && (!MEM_P (operands[0]) || rtx_equal_p (operands[0], operands[2]))))
11703 : return -1;
11704 : return 5373; /* vec_extract_lo_v4di_mask */
11705 :
11706 : case E_V2DFmode:
11707 : if (!nonimmediate_operand (operands[0], E_V2DFmode)
11708 : || pattern1557 (x2,
11709 : E_V2DFmode,
11710 : E_V4DFmode) != 0
11711 : || !
11712 : #line 13190 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11713 : (TARGET_AVX512DQ
11714 : && TARGET_AVX512VL
11715 : && (!MEM_P (operands[0]) || rtx_equal_p (operands[0], operands[2]))))
11716 : return -1;
11717 : return 5374; /* vec_extract_lo_v4df_mask */
11718 :
11719 : default:
11720 : return -1;
11721 : }
11722 :
11723 : case 2L:
11724 : if (XWINT (x6, 0) != 3L)
11725 : return -1;
11726 : switch (GET_MODE (operands[0]))
11727 : {
11728 : case E_V2DImode:
11729 : if (!nonimmediate_operand (operands[0], E_V2DImode)
11730 : || pattern1557 (x2,
11731 : E_V2DImode,
11732 : E_V4DImode) != 0
11733 : || !
11734 : #line 13227 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11735 : (TARGET_AVX512DQ
11736 : && TARGET_AVX512VL
11737 : && (!MEM_P (operands[0]) || rtx_equal_p (operands[0], operands[2]))))
11738 : return -1;
11739 : return 5377; /* vec_extract_hi_v4di_mask */
11740 :
11741 : case E_V2DFmode:
11742 : if (!nonimmediate_operand (operands[0], E_V2DFmode)
11743 : || pattern1557 (x2,
11744 : E_V2DFmode,
11745 : E_V4DFmode) != 0
11746 : || !
11747 : #line 13227 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11748 : (TARGET_AVX512DQ
11749 : && TARGET_AVX512VL
11750 : && (!MEM_P (operands[0]) || rtx_equal_p (operands[0], operands[2]))))
11751 : return -1;
11752 : return 5378; /* vec_extract_hi_v4df_mask */
11753 :
11754 : default:
11755 : return -1;
11756 : }
11757 :
11758 : default:
11759 : return -1;
11760 : }
11761 : }
11762 :
11763 : int
11764 : recog_176 (rtx x1 ATTRIBUTE_UNUSED,
11765 : rtx_insn *insn ATTRIBUTE_UNUSED,
11766 : int *pnum_clobbers ATTRIBUTE_UNUSED)
11767 : {
11768 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
11769 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
11770 : rtx x10;
11771 : int res ATTRIBUTE_UNUSED;
11772 : x2 = XEXP (x1, 1);
11773 : x3 = XEXP (x2, 0);
11774 : x4 = XEXP (x3, 1);
11775 : x5 = XVECEXP (x4, 0, 4);
11776 : if (GET_CODE (x5) != CONST_INT)
11777 : return -1;
11778 : operands[6] = x5;
11779 : res = recog_175 (x1, insn, pnum_clobbers);
11780 : if (res >= 0)
11781 : return res;
11782 : if (XWINT (x5, 0) != 4L)
11783 : return -1;
11784 : x6 = XVECEXP (x4, 0, 5);
11785 : if (x6 != const_int_rtx[MAX_SAVED_CONST_INT + 5])
11786 : return -1;
11787 : x7 = XVECEXP (x4, 0, 6);
11788 : if (x7 != const_int_rtx[MAX_SAVED_CONST_INT + 6])
11789 : return -1;
11790 : x8 = XVECEXP (x4, 0, 7);
11791 : if (x8 != const_int_rtx[MAX_SAVED_CONST_INT + 7]
11792 : || pattern1306 (x2,
11793 : E_V8HImode) != 0
11794 : || pattern1022 (x4) != 0)
11795 : return -1;
11796 : x9 = XEXP (x2, 1);
11797 : operands[6] = x9;
11798 : if (!nonimm_or_0_operand (operands[6], E_V8HImode))
11799 : return -1;
11800 : x10 = XEXP (x2, 2);
11801 : operands[7] = x10;
11802 : if (!register_operand (operands[7], E_QImode)
11803 : || !(
11804 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11805 : (TARGET_AVX512F) &&
11806 : #line 21186 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11807 : (TARGET_SSE2 && TARGET_AVX512BW && TARGET_AVX512VL)))
11808 : return -1;
11809 : return 8492; /* sse2_pshuflw_1_mask */
11810 : }
11811 :
11812 : int
11813 : recog_180 (rtx x1 ATTRIBUTE_UNUSED,
11814 : rtx_insn *insn ATTRIBUTE_UNUSED,
11815 : int *pnum_clobbers ATTRIBUTE_UNUSED)
11816 : {
11817 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
11818 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
11819 : rtx x10, x11, x12, x13, x14;
11820 : int res ATTRIBUTE_UNUSED;
11821 : x2 = XEXP (x1, 1);
11822 : x3 = XEXP (x2, 0);
11823 : x4 = XEXP (x3, 1);
11824 : x5 = XVECEXP (x4, 0, 0);
11825 : if (GET_CODE (x5) != CONST_INT)
11826 : return -1;
11827 : operands[2] = x5;
11828 : res = recog_179 (x1, insn, pnum_clobbers);
11829 : if (res >= 0)
11830 : return res;
11831 : if (XWINT (x5, 0) != 0L)
11832 : return -1;
11833 : x6 = XVECEXP (x4, 0, 1);
11834 : if (x6 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
11835 : return -1;
11836 : x7 = XVECEXP (x4, 0, 2);
11837 : if (x7 != const_int_rtx[MAX_SAVED_CONST_INT + 2])
11838 : return -1;
11839 : x8 = XVECEXP (x4, 0, 3);
11840 : if (x8 != const_int_rtx[MAX_SAVED_CONST_INT + 3]
11841 : || pattern1307 (x4,
11842 : 11,
11843 : 10,
11844 : 9,
11845 : 8) != 0
11846 : || pattern762 (x2,
11847 : E_V16HImode) != 0
11848 : || pattern1558 (x4) != 0)
11849 : return -1;
11850 : x9 = XVECEXP (x4, 0, 12);
11851 : operands[6] = x9;
11852 : if (!const_12_to_15_operand (operands[6], E_VOIDmode))
11853 : return -1;
11854 : x10 = XVECEXP (x4, 0, 13);
11855 : operands[7] = x10;
11856 : if (!const_12_to_15_operand (operands[7], E_VOIDmode))
11857 : return -1;
11858 : x11 = XVECEXP (x4, 0, 14);
11859 : operands[8] = x11;
11860 : if (!const_12_to_15_operand (operands[8], E_VOIDmode))
11861 : return -1;
11862 : x12 = XVECEXP (x4, 0, 15);
11863 : operands[9] = x12;
11864 : if (!const_12_to_15_operand (operands[9], E_VOIDmode))
11865 : return -1;
11866 : x13 = XEXP (x2, 1);
11867 : operands[10] = x13;
11868 : if (!nonimm_or_0_operand (operands[10], E_V16HImode))
11869 : return -1;
11870 : x14 = XEXP (x2, 2);
11871 : operands[11] = x14;
11872 : if (!register_operand (operands[11], E_HImode)
11873 : || !(
11874 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11875 : (TARGET_AVX512F) &&
11876 : #line 21277 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11877 : (TARGET_AVX2
11878 : && TARGET_AVX512BW && TARGET_AVX512VL
11879 : && INTVAL (operands[2]) + 8 == INTVAL (operands[6])
11880 : && INTVAL (operands[3]) + 8 == INTVAL (operands[7])
11881 : && INTVAL (operands[4]) + 8 == INTVAL (operands[8])
11882 : && INTVAL (operands[5]) + 8 == INTVAL (operands[9]))))
11883 : return -1;
11884 : return 8496; /* avx2_pshufhw_1_mask */
11885 : }
11886 :
11887 : int
11888 : recog_187 (rtx x1 ATTRIBUTE_UNUSED,
11889 : rtx_insn *insn ATTRIBUTE_UNUSED,
11890 : int *pnum_clobbers ATTRIBUTE_UNUSED)
11891 : {
11892 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
11893 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
11894 : rtx x10, x11, x12, x13, x14, x15, x16, x17;
11895 : rtx x18, x19, x20, x21, x22;
11896 : int res ATTRIBUTE_UNUSED;
11897 : x2 = XEXP (x1, 1);
11898 : x3 = XEXP (x2, 0);
11899 : x4 = XEXP (x3, 0);
11900 : switch (GET_CODE (x4))
11901 : {
11902 : case SS_TRUNCATE:
11903 : x5 = XEXP (x3, 1);
11904 : if (GET_CODE (x5) != SS_TRUNCATE)
11905 : return -1;
11906 : x6 = XEXP (x4, 0);
11907 : operands[1] = x6;
11908 : x7 = XEXP (x5, 0);
11909 : operands[2] = x7;
11910 : x8 = XEXP (x2, 1);
11911 : operands[3] = x8;
11912 : x9 = XEXP (x2, 2);
11913 : operands[4] = x9;
11914 : switch (GET_MODE (operands[0]))
11915 : {
11916 : case E_V16QImode:
11917 : if (pattern1135 (x2,
11918 : E_HImode,
11919 : E_V16QImode,
11920 : E_V8HImode,
11921 : E_V8QImode) != 0
11922 : || !(
11923 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11924 : (TARGET_AVX512F) &&
11925 : #line 19550 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11926 : (TARGET_SSE2 && TARGET_AVX512VL && TARGET_AVX512BW)))
11927 : return -1;
11928 : return 8346; /* sse2_packsswb_mask */
11929 :
11930 : case E_V8HImode:
11931 : if (pattern1135 (x2,
11932 : E_QImode,
11933 : E_V8HImode,
11934 : E_V4SImode,
11935 : E_V4HImode) != 0
11936 : || !(
11937 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11938 : (TARGET_AVX512F) &&
11939 : #line 19644 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11940 : (TARGET_SSE2 && TARGET_AVX512VL && TARGET_AVX512BW)))
11941 : return -1;
11942 : return 8352; /* sse2_packssdw_mask */
11943 :
11944 : default:
11945 : return -1;
11946 : }
11947 :
11948 : case REG:
11949 : case SUBREG:
11950 : case MEM:
11951 : operands[2] = x4;
11952 : x5 = XEXP (x3, 1);
11953 : if (GET_CODE (x5) != VEC_SELECT)
11954 : return -1;
11955 : x10 = XEXP (x5, 1);
11956 : if (GET_CODE (x10) != PARALLEL)
11957 : return -1;
11958 : x7 = XEXP (x5, 0);
11959 : operands[1] = x7;
11960 : x8 = XEXP (x2, 1);
11961 : operands[3] = x8;
11962 : x9 = XEXP (x2, 2);
11963 : operands[4] = x9;
11964 : switch (XVECLEN (x10, 0))
11965 : {
11966 : case 8:
11967 : x11 = XVECEXP (x10, 0, 0);
11968 : if (x11 != const_int_rtx[MAX_SAVED_CONST_INT + 8])
11969 : return -1;
11970 : x12 = XVECEXP (x10, 0, 1);
11971 : if (x12 != const_int_rtx[MAX_SAVED_CONST_INT + 9])
11972 : return -1;
11973 : x13 = XVECEXP (x10, 0, 2);
11974 : if (x13 != const_int_rtx[MAX_SAVED_CONST_INT + 10]
11975 : || pattern1424 (x10,
11976 : 15,
11977 : 14,
11978 : 13,
11979 : 12,
11980 : 11) != 0
11981 : || !register_operand (operands[4], E_HImode))
11982 : return -1;
11983 : switch (GET_MODE (operands[0]))
11984 : {
11985 : case E_V16SFmode:
11986 : if (pattern1527 (x2,
11987 : E_V16SFmode,
11988 : E_V8SFmode) != 0
11989 : || !(
11990 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11991 : (TARGET_AVX512F) &&
11992 : #line 20433 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11993 : (TARGET_AVX512DQ)))
11994 : return -1;
11995 : return 8442; /* vec_set_lo_v16sf_mask */
11996 :
11997 : case E_V16SImode:
11998 : if (pattern1527 (x2,
11999 : E_V16SImode,
12000 : E_V8SImode) != 0
12001 : || !(
12002 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12003 : (TARGET_AVX512F) &&
12004 : #line 20433 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12005 : (TARGET_AVX512DQ)))
12006 : return -1;
12007 : return 8444; /* vec_set_lo_v16si_mask */
12008 :
12009 : default:
12010 : return -1;
12011 : }
12012 :
12013 : case 4:
12014 : if (pattern1227 (x10,
12015 : 7,
12016 : 6,
12017 : 5,
12018 : 4) != 0
12019 : || !register_operand (operands[4], E_QImode))
12020 : return -1;
12021 : switch (GET_MODE (operands[0]))
12022 : {
12023 : case E_V8DFmode:
12024 : if (pattern1527 (x2,
12025 : E_V8DFmode,
12026 : E_V4DFmode) != 0
12027 : || !
12028 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12029 : (TARGET_AVX512F))
12030 : return -1;
12031 : return 8450; /* vec_set_lo_v8df_mask */
12032 :
12033 : case E_V8DImode:
12034 : if (pattern1527 (x2,
12035 : E_V8DImode,
12036 : E_V4DImode) != 0
12037 : || !
12038 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12039 : (TARGET_AVX512F))
12040 : return -1;
12041 : return 8452; /* vec_set_lo_v8di_mask */
12042 :
12043 : case E_V8SImode:
12044 : if (pattern1527 (x2,
12045 : E_V8SImode,
12046 : E_V4SImode) != 0
12047 : || !(
12048 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12049 : (TARGET_AVX512F) &&
12050 : #line 29184 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12051 : (TARGET_AVX)))
12052 : return -1;
12053 : return 9544; /* vec_set_lo_v8si_mask */
12054 :
12055 : case E_V8SFmode:
12056 : if (pattern1527 (x2,
12057 : E_V8SFmode,
12058 : E_V4SFmode) != 0
12059 : || !(
12060 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12061 : (TARGET_AVX512F) &&
12062 : #line 29184 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12063 : (TARGET_AVX)))
12064 : return -1;
12065 : return 9546; /* vec_set_lo_v8sf_mask */
12066 :
12067 : default:
12068 : return -1;
12069 : }
12070 :
12071 : case 2:
12072 : x11 = XVECEXP (x10, 0, 0);
12073 : if (x11 != const_int_rtx[MAX_SAVED_CONST_INT + 2])
12074 : return -1;
12075 : x12 = XVECEXP (x10, 0, 1);
12076 : if (x12 != const_int_rtx[MAX_SAVED_CONST_INT + 3]
12077 : || !register_operand (operands[4], E_QImode))
12078 : return -1;
12079 : switch (GET_MODE (operands[0]))
12080 : {
12081 : case E_V4DImode:
12082 : if (pattern1527 (x2,
12083 : E_V4DImode,
12084 : E_V2DImode) != 0
12085 : || !(
12086 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12087 : (TARGET_AVX512F) &&
12088 : #line 29135 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12089 : (TARGET_AVX && TARGET_AVX512DQ)))
12090 : return -1;
12091 : return 9536; /* vec_set_lo_v4di_mask */
12092 :
12093 : case E_V4DFmode:
12094 : if (pattern1527 (x2,
12095 : E_V4DFmode,
12096 : E_V2DFmode) != 0
12097 : || !(
12098 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12099 : (TARGET_AVX512F) &&
12100 : #line 29135 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12101 : (TARGET_AVX && TARGET_AVX512DQ)))
12102 : return -1;
12103 : return 9538; /* vec_set_lo_v4df_mask */
12104 :
12105 : default:
12106 : return -1;
12107 : }
12108 :
12109 : default:
12110 : return -1;
12111 : }
12112 :
12113 : case VEC_SELECT:
12114 : x14 = XEXP (x4, 1);
12115 : if (GET_CODE (x14) != PARALLEL)
12116 : return -1;
12117 : x6 = XEXP (x4, 0);
12118 : operands[1] = x6;
12119 : x5 = XEXP (x3, 1);
12120 : operands[2] = x5;
12121 : x8 = XEXP (x2, 1);
12122 : operands[3] = x8;
12123 : x9 = XEXP (x2, 2);
12124 : operands[4] = x9;
12125 : switch (XVECLEN (x14, 0))
12126 : {
12127 : case 8:
12128 : if (pattern651 (x14) != 0)
12129 : return -1;
12130 : x15 = XVECEXP (x14, 0, 4);
12131 : if (x15 != const_int_rtx[MAX_SAVED_CONST_INT + 4])
12132 : return -1;
12133 : x16 = XVECEXP (x14, 0, 5);
12134 : if (x16 != const_int_rtx[MAX_SAVED_CONST_INT + 5])
12135 : return -1;
12136 : x17 = XVECEXP (x14, 0, 6);
12137 : if (x17 != const_int_rtx[MAX_SAVED_CONST_INT + 6])
12138 : return -1;
12139 : x18 = XVECEXP (x14, 0, 7);
12140 : if (x18 != const_int_rtx[MAX_SAVED_CONST_INT + 7]
12141 : || !register_operand (operands[4], E_HImode))
12142 : return -1;
12143 : switch (GET_MODE (operands[0]))
12144 : {
12145 : case E_V16SFmode:
12146 : if (pattern1483 (x2,
12147 : E_V16SFmode,
12148 : E_V8SFmode) != 0
12149 : || !(
12150 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12151 : (TARGET_AVX512F) &&
12152 : #line 20450 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12153 : (TARGET_AVX512DQ)))
12154 : return -1;
12155 : return 8446; /* vec_set_hi_v16sf_mask */
12156 :
12157 : case E_V16SImode:
12158 : if (pattern1483 (x2,
12159 : E_V16SImode,
12160 : E_V8SImode) != 0
12161 : || !(
12162 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12163 : (TARGET_AVX512F) &&
12164 : #line 20450 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12165 : (TARGET_AVX512DQ)))
12166 : return -1;
12167 : return 8448; /* vec_set_hi_v16si_mask */
12168 :
12169 : default:
12170 : return -1;
12171 : }
12172 :
12173 : case 4:
12174 : if (pattern651 (x14) != 0
12175 : || !register_operand (operands[4], E_QImode))
12176 : return -1;
12177 : switch (GET_MODE (operands[0]))
12178 : {
12179 : case E_V8DFmode:
12180 : if (pattern1483 (x2,
12181 : E_V8DFmode,
12182 : E_V4DFmode) != 0
12183 : || !
12184 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12185 : (TARGET_AVX512F))
12186 : return -1;
12187 : return 8454; /* vec_set_hi_v8df_mask */
12188 :
12189 : case E_V8DImode:
12190 : if (pattern1483 (x2,
12191 : E_V8DImode,
12192 : E_V4DImode) != 0
12193 : || !
12194 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12195 : (TARGET_AVX512F))
12196 : return -1;
12197 : return 8456; /* vec_set_hi_v8di_mask */
12198 :
12199 : case E_V8SImode:
12200 : if (pattern1483 (x2,
12201 : E_V8SImode,
12202 : E_V4SImode) != 0
12203 : || !(
12204 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12205 : (TARGET_AVX512F) &&
12206 : #line 29207 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12207 : (TARGET_AVX)))
12208 : return -1;
12209 : return 9548; /* vec_set_hi_v8si_mask */
12210 :
12211 : case E_V8SFmode:
12212 : if (pattern1483 (x2,
12213 : E_V8SFmode,
12214 : E_V4SFmode) != 0
12215 : || !(
12216 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12217 : (TARGET_AVX512F) &&
12218 : #line 29207 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12219 : (TARGET_AVX)))
12220 : return -1;
12221 : return 9550; /* vec_set_hi_v8sf_mask */
12222 :
12223 : default:
12224 : return -1;
12225 : }
12226 :
12227 : case 2:
12228 : x19 = XVECEXP (x14, 0, 0);
12229 : if (x19 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
12230 : return -1;
12231 : x20 = XVECEXP (x14, 0, 1);
12232 : if (x20 != const_int_rtx[MAX_SAVED_CONST_INT + 1]
12233 : || !register_operand (operands[4], E_QImode))
12234 : return -1;
12235 : switch (GET_MODE (operands[0]))
12236 : {
12237 : case E_V4DImode:
12238 : if (pattern1483 (x2,
12239 : E_V4DImode,
12240 : E_V2DImode) != 0
12241 : || !(
12242 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12243 : (TARGET_AVX512F) &&
12244 : #line 29159 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12245 : (TARGET_AVX && TARGET_AVX512DQ)))
12246 : return -1;
12247 : return 9540; /* vec_set_hi_v4di_mask */
12248 :
12249 : case E_V4DFmode:
12250 : if (pattern1483 (x2,
12251 : E_V4DFmode,
12252 : E_V2DFmode) != 0
12253 : || !(
12254 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12255 : (TARGET_AVX512F) &&
12256 : #line 29159 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12257 : (TARGET_AVX && TARGET_AVX512DQ)))
12258 : return -1;
12259 : return 9542; /* vec_set_hi_v4df_mask */
12260 :
12261 : default:
12262 : return -1;
12263 : }
12264 :
12265 : default:
12266 : return -1;
12267 : }
12268 :
12269 : case UNSPEC:
12270 : if (XVECLEN (x4, 0) != 2
12271 : || XINT (x4, 1) != 151
12272 : || GET_MODE (x4) != E_V4HImode
12273 : || !register_operand (operands[0], E_V8HImode)
12274 : || GET_MODE (x2) != E_V8HImode
12275 : || GET_MODE (x3) != E_V8HImode)
12276 : return -1;
12277 : x21 = XVECEXP (x4, 0, 0);
12278 : operands[1] = x21;
12279 : if (!register_operand (operands[1], E_V4SFmode))
12280 : return -1;
12281 : x22 = XVECEXP (x4, 0, 1);
12282 : operands[2] = x22;
12283 : if (!const_0_to_255_operand (operands[2], E_SImode))
12284 : return -1;
12285 : x5 = XEXP (x3, 1);
12286 : operands[3] = x5;
12287 : if (!const0_operand (operands[3], E_V4HImode))
12288 : return -1;
12289 : x8 = XEXP (x2, 1);
12290 : operands[4] = x8;
12291 : if (!nonimm_or_0_operand (operands[4], E_V8HImode))
12292 : return -1;
12293 : x9 = XEXP (x2, 2);
12294 : operands[5] = x9;
12295 : if (!register_operand (operands[5], E_QImode)
12296 : || !(
12297 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12298 : (TARGET_AVX512F) &&
12299 : #line 29846 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12300 : ((TARGET_F16C || TARGET_AVX512VL) && TARGET_AVX512VL)))
12301 : return -1;
12302 : return 9731; /* *vcvtps2ph_mask */
12303 :
12304 : case FLOAT_TRUNCATE:
12305 : x5 = XEXP (x3, 1);
12306 : if (GET_CODE (x5) != FLOAT_TRUNCATE)
12307 : return -1;
12308 : x6 = XEXP (x4, 0);
12309 : operands[2] = x6;
12310 : x7 = XEXP (x5, 0);
12311 : operands[1] = x7;
12312 : x8 = XEXP (x2, 1);
12313 : operands[3] = x8;
12314 : x9 = XEXP (x2, 2);
12315 : operands[4] = x9;
12316 : switch (GET_MODE (operands[0]))
12317 : {
12318 : case E_V32BFmode:
12319 : if (pattern1137 (x2,
12320 : E_SImode,
12321 : E_V32BFmode,
12322 : E_V16SFmode,
12323 : E_V16BFmode) != 0
12324 : || !(
12325 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12326 : (TARGET_AVX512F) &&
12327 : #line 31725 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12328 : (TARGET_AVX512BF16)))
12329 : return -1;
12330 : return 10412; /* avx512f_cvtne2ps2bf16_v32bf_mask */
12331 :
12332 : case E_V16BFmode:
12333 : if (pattern1137 (x2,
12334 : E_HImode,
12335 : E_V16BFmode,
12336 : E_V8SFmode,
12337 : E_V8BFmode) != 0
12338 : || !(
12339 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12340 : (TARGET_AVX512F) && (
12341 : #line 31725 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12342 : (TARGET_AVX512BF16) &&
12343 : #line 31691 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12344 : (TARGET_AVX512VL))))
12345 : return -1;
12346 : return 10414; /* avx512f_cvtne2ps2bf16_v16bf_mask */
12347 :
12348 : case E_V8BFmode:
12349 : if (pattern1137 (x2,
12350 : E_QImode,
12351 : E_V8BFmode,
12352 : E_V4SFmode,
12353 : E_V4BFmode) != 0
12354 : || !(
12355 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12356 : (TARGET_AVX512F) && (
12357 : #line 31725 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12358 : (TARGET_AVX512BF16) &&
12359 : #line 31691 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12360 : (TARGET_AVX512VL))))
12361 : return -1;
12362 : return 10416; /* avx512f_cvtne2ps2bf16_v8bf_mask */
12363 :
12364 : case E_V32HFmode:
12365 : if (pattern1138 (x2,
12366 : E_SImode,
12367 : E_V32HFmode,
12368 : E_V16SFmode,
12369 : E_V16HFmode) != 0
12370 : || !(
12371 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12372 : (TARGET_AVX512F) &&
12373 : #line 32424 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12374 : (TARGET_AVX10_2 && 1)))
12375 : return -1;
12376 : return 10512; /* avx10_2_cvt2ps2phx_v32hf_mask */
12377 :
12378 : case E_V16HFmode:
12379 : if (pattern1138 (x2,
12380 : E_HImode,
12381 : E_V16HFmode,
12382 : E_V8SFmode,
12383 : E_V8HFmode) != 0
12384 : || !(
12385 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12386 : (TARGET_AVX512F) && (
12387 : #line 32424 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12388 : (TARGET_AVX10_2 && 1) &&
12389 : #line 545 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12390 : (TARGET_AVX512VL))))
12391 : return -1;
12392 : return 10515; /* avx10_2_cvt2ps2phx_v16hf_mask */
12393 :
12394 : case E_V8HFmode:
12395 : if (pattern1138 (x2,
12396 : E_QImode,
12397 : E_V8HFmode,
12398 : E_V4SFmode,
12399 : E_V4HFmode) != 0
12400 : || !(
12401 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12402 : (TARGET_AVX512F) && (
12403 : #line 32424 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12404 : (TARGET_AVX10_2 && 1) &&
12405 : #line 545 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12406 : (TARGET_AVX512VL))))
12407 : return -1;
12408 : return 10517; /* avx10_2_cvt2ps2phx_v8hf_mask */
12409 :
12410 : default:
12411 : return -1;
12412 : }
12413 :
12414 : default:
12415 : return -1;
12416 : }
12417 : }
12418 :
12419 : int
12420 : recog_193 (rtx x1 ATTRIBUTE_UNUSED,
12421 : rtx_insn *insn ATTRIBUTE_UNUSED,
12422 : int *pnum_clobbers ATTRIBUTE_UNUSED)
12423 : {
12424 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
12425 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
12426 : rtx x10;
12427 : int res ATTRIBUTE_UNUSED;
12428 : x2 = XEXP (x1, 1);
12429 : x3 = XEXP (x2, 0);
12430 : x4 = XEXP (x3, 0);
12431 : switch (GET_CODE (x4))
12432 : {
12433 : case REG:
12434 : case SUBREG:
12435 : case MEM:
12436 : operands[1] = x4;
12437 : x5 = XEXP (x2, 1);
12438 : operands[2] = x5;
12439 : x6 = XEXP (x2, 2);
12440 : operands[3] = x6;
12441 : switch (GET_MODE (operands[0]))
12442 : {
12443 : case E_V8DFmode:
12444 : if (pattern142 (x2,
12445 : E_V8DFmode,
12446 : E_QImode) != 0)
12447 : return -1;
12448 : switch (GET_MODE (operands[1]))
12449 : {
12450 : case E_V8HFmode:
12451 : if (!vector_operand (operands[1], E_V8HFmode)
12452 : || !(
12453 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12454 : (TARGET_AVX512F) &&
12455 : #line 8365 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12456 : (TARGET_AVX512FP16)))
12457 : return -1;
12458 : return 4757; /* avx512fp16_float_extend_phv8df2_mask */
12459 :
12460 : case E_V8SFmode:
12461 : if (!vector_operand (operands[1], E_V8SFmode)
12462 : || !(
12463 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12464 : (TARGET_AVX512F) && (
12465 : #line 10550 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12466 : (TARGET_AVX && (64 == 64 || TARGET_AVX512VL) && 1) &&
12467 : #line 466 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12468 : (TARGET_AVX512F))))
12469 : return -1;
12470 : return 5202; /* avx512f_cvtps2pd512_mask */
12471 :
12472 : default:
12473 : return -1;
12474 : }
12475 :
12476 : case E_V16SFmode:
12477 : if (pattern141 (x2,
12478 : E_V16SFmode,
12479 : E_HImode,
12480 : E_V16HFmode) != 0
12481 : || !(
12482 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12483 : (TARGET_AVX512F) &&
12484 : #line 8365 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12485 : (TARGET_AVX512FP16)))
12486 : return -1;
12487 : return 4761; /* avx512fp16_float_extend_phv16sf2_mask */
12488 :
12489 : case E_V8SFmode:
12490 : if (pattern141 (x2,
12491 : E_V8SFmode,
12492 : E_QImode,
12493 : E_V8HFmode) != 0
12494 : || !(
12495 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12496 : (TARGET_AVX512F) && (
12497 : #line 8365 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12498 : (TARGET_AVX512FP16) &&
12499 : #line 986 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12500 : (TARGET_AVX512VL))))
12501 : return -1;
12502 : return 4765; /* avx512fp16_float_extend_phv8sf2_mask */
12503 :
12504 : case E_V4DFmode:
12505 : if (pattern142 (x2,
12506 : E_V4DFmode,
12507 : E_QImode) != 0)
12508 : return -1;
12509 : switch (GET_MODE (operands[1]))
12510 : {
12511 : case E_V4HFmode:
12512 : if (!memory_operand (operands[1], E_V4HFmode)
12513 : || !(
12514 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12515 : (TARGET_AVX512F) &&
12516 : #line 8404 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12517 : (TARGET_AVX512FP16 && TARGET_AVX512VL)))
12518 : return -1;
12519 : return 4772; /* *avx512fp16_float_extend_phv4df2_load_mask */
12520 :
12521 : case E_V4SFmode:
12522 : if (!vector_operand (operands[1], E_V4SFmode)
12523 : || !(
12524 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12525 : (TARGET_AVX512F) &&
12526 : #line 10550 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12527 : (TARGET_AVX && (32 == 64 || TARGET_AVX512VL) && 1)))
12528 : return -1;
12529 : return 5205; /* avx_cvtps2pd256_mask */
12530 :
12531 : default:
12532 : return -1;
12533 : }
12534 :
12535 : case E_V4SFmode:
12536 : if (pattern156 (x2,
12537 : E_V4SFmode,
12538 : E_V4HFmode) != 0
12539 : || !(
12540 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12541 : (TARGET_AVX512F) &&
12542 : #line 8404 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12543 : (TARGET_AVX512FP16 && TARGET_AVX512VL)))
12544 : return -1;
12545 : return 4774; /* *avx512fp16_float_extend_phv4sf2_load_mask */
12546 :
12547 : case E_V2DFmode:
12548 : if (pattern142 (x2,
12549 : E_V2DFmode,
12550 : E_QImode) != 0)
12551 : return -1;
12552 : switch (GET_MODE (operands[1]))
12553 : {
12554 : case E_V2HFmode:
12555 : if (!memory_operand (operands[1], E_V2HFmode)
12556 : || !(
12557 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12558 : (TARGET_AVX512F) &&
12559 : #line 8443 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12560 : (TARGET_AVX512FP16 && TARGET_AVX512VL)))
12561 : return -1;
12562 : return 4778; /* *avx512fp16_float_extend_phv2df2_load_mask */
12563 :
12564 : case E_V2SFmode:
12565 : if (!memory_operand (operands[1], E_V2SFmode)
12566 : || !(
12567 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12568 : (TARGET_AVX512F) &&
12569 : #line 10732 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12570 : (TARGET_SSE2 && TARGET_AVX512VL)))
12571 : return -1;
12572 : return 5253; /* sse2_cvtps2pd_mask_1 */
12573 :
12574 : default:
12575 : return -1;
12576 : }
12577 :
12578 : default:
12579 : return -1;
12580 : }
12581 :
12582 : case VEC_SELECT:
12583 : x7 = XEXP (x4, 1);
12584 : if (GET_CODE (x7) != PARALLEL)
12585 : return -1;
12586 : switch (XVECLEN (x7, 0))
12587 : {
12588 : case 4:
12589 : if (pattern651 (x7) != 0
12590 : || GET_MODE (x4) != E_V4HFmode)
12591 : return -1;
12592 : x8 = XEXP (x4, 0);
12593 : operands[1] = x8;
12594 : if (!register_operand (operands[1], E_V8HFmode))
12595 : return -1;
12596 : x5 = XEXP (x2, 1);
12597 : operands[2] = x5;
12598 : x6 = XEXP (x2, 2);
12599 : operands[3] = x6;
12600 : if (!register_operand (operands[3], E_QImode))
12601 : return -1;
12602 : switch (GET_MODE (operands[0]))
12603 : {
12604 : case E_V4DFmode:
12605 : if (pattern143 (x2,
12606 : E_V4DFmode) != 0
12607 : || !(
12608 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12609 : (TARGET_AVX512F) &&
12610 : #line 8394 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12611 : (TARGET_AVX512FP16 && TARGET_AVX512VL)))
12612 : return -1;
12613 : return 4768; /* avx512fp16_float_extend_phv4df2_mask */
12614 :
12615 : case E_V4SFmode:
12616 : if (pattern143 (x2,
12617 : E_V4SFmode) != 0
12618 : || !(
12619 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12620 : (TARGET_AVX512F) &&
12621 : #line 8394 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12622 : (TARGET_AVX512FP16 && TARGET_AVX512VL)))
12623 : return -1;
12624 : return 4770; /* avx512fp16_float_extend_phv4sf2_mask */
12625 :
12626 : default:
12627 : return -1;
12628 : }
12629 :
12630 : case 2:
12631 : x9 = XVECEXP (x7, 0, 0);
12632 : if (x9 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
12633 : return -1;
12634 : x10 = XVECEXP (x7, 0, 1);
12635 : if (x10 != const_int_rtx[MAX_SAVED_CONST_INT + 1]
12636 : || !register_operand (operands[0], E_V2DFmode)
12637 : || GET_MODE (x2) != E_V2DFmode
12638 : || GET_MODE (x3) != E_V2DFmode)
12639 : return -1;
12640 : x6 = XEXP (x2, 2);
12641 : switch (GET_CODE (x6))
12642 : {
12643 : case REG:
12644 : case SUBREG:
12645 : operands[3] = x6;
12646 : if (!register_operand (operands[3], E_QImode))
12647 : return -1;
12648 : x8 = XEXP (x4, 0);
12649 : operands[1] = x8;
12650 : x5 = XEXP (x2, 1);
12651 : operands[2] = x5;
12652 : if (!nonimm_or_0_operand (operands[2], E_V2DFmode))
12653 : return -1;
12654 : switch (GET_MODE (x4))
12655 : {
12656 : case E_V2HFmode:
12657 : if (!register_operand (operands[1], E_V8HFmode)
12658 : || !(
12659 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12660 : (TARGET_AVX512F) &&
12661 : #line 8433 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12662 : (TARGET_AVX512FP16 && TARGET_AVX512VL)))
12663 : return -1;
12664 : return 4776; /* avx512fp16_float_extend_phv2df2_mask */
12665 :
12666 : case E_V2SFmode:
12667 : if (!register_operand (operands[1], E_V4SFmode)
12668 : || !(
12669 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12670 : (TARGET_AVX512F) &&
12671 : #line 10718 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12672 : (TARGET_SSE2 && TARGET_AVX512VL)))
12673 : return -1;
12674 : return 5251; /* sse2_cvtps2pd_mask */
12675 :
12676 : default:
12677 : return -1;
12678 : }
12679 :
12680 : case CONST_INT:
12681 : if (XWINT (x6, 0) != 1L
12682 : || GET_MODE (x4) != E_V2SFmode)
12683 : return -1;
12684 : x8 = XEXP (x4, 0);
12685 : operands[2] = x8;
12686 : if (!nonimmediate_operand (operands[2], E_V4SFmode))
12687 : return -1;
12688 : x5 = XEXP (x2, 1);
12689 : operands[1] = x5;
12690 : if (!register_operand (operands[1], E_V2DFmode)
12691 : || !
12692 : #line 10377 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12693 : (TARGET_SSE2))
12694 : return -1;
12695 : return 5185; /* sse2_cvtss2sd */
12696 :
12697 : default:
12698 : return -1;
12699 : }
12700 :
12701 : default:
12702 : return -1;
12703 : }
12704 :
12705 : default:
12706 : return -1;
12707 : }
12708 : }
12709 :
12710 : int
12711 : recog_200 (rtx x1 ATTRIBUTE_UNUSED,
12712 : rtx_insn *insn ATTRIBUTE_UNUSED,
12713 : int *pnum_clobbers ATTRIBUTE_UNUSED)
12714 : {
12715 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
12716 : rtx x2;
12717 : int res ATTRIBUTE_UNUSED;
12718 : x2 = XEXP (x1, 1);
12719 : switch (pattern139 (x2))
12720 : {
12721 : case 0:
12722 : if (!(
12723 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12724 : (TARGET_AVX512F) && (
12725 : #line 3329 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12726 : (TARGET_SSE
12727 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))
12728 : && (64 == 64 || TARGET_AVX512VL)
12729 : && 1) &&
12730 : #line 393 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12731 : (TARGET_AVX512FP16))))
12732 : return -1;
12733 : return 3046; /* *smaxv32hf3_mask */
12734 :
12735 : case 1:
12736 : if (!(
12737 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12738 : (TARGET_AVX512F) && (
12739 : #line 3329 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12740 : (TARGET_SSE
12741 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))
12742 : && (32 == 64 || TARGET_AVX512VL)
12743 : && 1) &&
12744 : #line 394 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12745 : (TARGET_AVX512FP16 && TARGET_AVX512VL))))
12746 : return -1;
12747 : return 3053; /* *smaxv16hf3_mask */
12748 :
12749 : case 2:
12750 : if (!(
12751 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12752 : (TARGET_AVX512F) && (
12753 : #line 3329 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12754 : (TARGET_SSE
12755 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))
12756 : && (16 == 64 || TARGET_AVX512VL)
12757 : && 1) &&
12758 : #line 395 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12759 : (TARGET_AVX512FP16 && TARGET_AVX512VL))))
12760 : return -1;
12761 : return 3057; /* *smaxv8hf3_mask */
12762 :
12763 : case 3:
12764 : if (!(
12765 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12766 : (TARGET_AVX512F) && (
12767 : #line 3329 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12768 : (TARGET_SSE
12769 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))
12770 : && (64 == 64 || TARGET_AVX512VL)
12771 : && 1) &&
12772 : #line 396 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12773 : (TARGET_AVX512F))))
12774 : return -1;
12775 : return 3062; /* *smaxv16sf3_mask */
12776 :
12777 : case 4:
12778 : if (!(
12779 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12780 : (TARGET_AVX512F) && (
12781 : #line 3329 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12782 : (TARGET_SSE
12783 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))
12784 : && (32 == 64 || TARGET_AVX512VL)
12785 : && 1) &&
12786 : #line 396 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12787 : (TARGET_AVX))))
12788 : return -1;
12789 : return 3069; /* *smaxv8sf3_mask */
12790 :
12791 : case 5:
12792 : if (!(
12793 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12794 : (TARGET_AVX512F) &&
12795 : #line 3329 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12796 : (TARGET_SSE
12797 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))
12798 : && (16 == 64 || TARGET_AVX512VL)
12799 : && 1)))
12800 : return -1;
12801 : return 3073; /* *smaxv4sf3_mask */
12802 :
12803 : case 6:
12804 : if (!(
12805 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12806 : (TARGET_AVX512F) && (
12807 : #line 3329 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12808 : (TARGET_SSE
12809 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))
12810 : && (64 == 64 || TARGET_AVX512VL)
12811 : && 1) &&
12812 : #line 397 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12813 : (TARGET_AVX512F))))
12814 : return -1;
12815 : return 3078; /* *smaxv8df3_mask */
12816 :
12817 : case 7:
12818 : if (!(
12819 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12820 : (TARGET_AVX512F) && (
12821 : #line 3329 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12822 : (TARGET_SSE
12823 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))
12824 : && (32 == 64 || TARGET_AVX512VL)
12825 : && 1) &&
12826 : #line 397 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12827 : (TARGET_AVX))))
12828 : return -1;
12829 : return 3085; /* *smaxv4df3_mask */
12830 :
12831 : case 8:
12832 : if (!(
12833 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12834 : (TARGET_AVX512F) && (
12835 : #line 3329 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12836 : (TARGET_SSE
12837 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))
12838 : && (16 == 64 || TARGET_AVX512VL)
12839 : && 1) &&
12840 : #line 398 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12841 : (TARGET_SSE2))))
12842 : return -1;
12843 : return 3089; /* *smaxv2df3_mask */
12844 :
12845 : case 9:
12846 : if (!(
12847 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12848 : (TARGET_AVX512F) &&
12849 : #line 18033 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12850 : (TARGET_AVX512F && !(MEM_P (operands[1]) && MEM_P (operands[2])))))
12851 : return -1;
12852 : return 7807; /* *avx512f_smaxv16si3_mask */
12853 :
12854 : case 10:
12855 : if (!(
12856 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12857 : (TARGET_AVX512F) && (
12858 : #line 18033 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12859 : (TARGET_AVX512F && !(MEM_P (operands[1]) && MEM_P (operands[2]))) &&
12860 : #line 496 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12861 : (TARGET_AVX512VL))))
12862 : return -1;
12863 : return 7815; /* *avx512f_smaxv8si3_mask */
12864 :
12865 : case 11:
12866 : if (nonimmediate_operand (operands[1], E_V4SImode)
12867 : && nonimmediate_operand (operands[2], E_V4SImode)
12868 : && (
12869 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12870 : (TARGET_AVX512F) && (
12871 : #line 18033 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12872 : (TARGET_AVX512F && !(MEM_P (operands[1]) && MEM_P (operands[2]))) &&
12873 : #line 496 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12874 : (TARGET_AVX512VL))))
12875 : return 7823; /* *avx512f_smaxv4si3_mask */
12876 : if (!vector_operand (operands[1], E_V4SImode)
12877 : || !vector_operand (operands[2], E_V4SImode)
12878 : || !(
12879 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12880 : (TARGET_AVX512F) &&
12881 : #line 18136 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12882 : (TARGET_SSE4_1
12883 : && (16 == 64 || TARGET_AVX512VL)
12884 : && !(MEM_P (operands[1]) && MEM_P (operands[2])))))
12885 : return -1;
12886 : return 7907; /* *sse4_1_smaxv4si3_mask */
12887 :
12888 : case 12:
12889 : if (!(
12890 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12891 : (TARGET_AVX512F) &&
12892 : #line 18033 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12893 : (TARGET_AVX512F && !(MEM_P (operands[1]) && MEM_P (operands[2])))))
12894 : return -1;
12895 : return 7831; /* *avx512f_smaxv8di3_mask */
12896 :
12897 : case 13:
12898 : if (!(
12899 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12900 : (TARGET_AVX512F) && (
12901 : #line 18033 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12902 : (TARGET_AVX512F && !(MEM_P (operands[1]) && MEM_P (operands[2]))) &&
12903 : #line 497 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12904 : (TARGET_AVX512VL))))
12905 : return -1;
12906 : return 7839; /* *avx512f_smaxv4di3_mask */
12907 :
12908 : case 14:
12909 : if (!(
12910 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12911 : (TARGET_AVX512F) && (
12912 : #line 18033 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12913 : (TARGET_AVX512F && !(MEM_P (operands[1]) && MEM_P (operands[2]))) &&
12914 : #line 497 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12915 : (TARGET_AVX512VL))))
12916 : return -1;
12917 : return 7847; /* *avx512f_smaxv2di3_mask */
12918 :
12919 : case 15:
12920 : if (!(
12921 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12922 : (TARGET_AVX512F) &&
12923 : #line 18044 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12924 : (TARGET_AVX512BW && !(MEM_P (operands[1]) && MEM_P (operands[2])))))
12925 : return -1;
12926 : return 7855; /* *avx512bw_smaxv64qi3_mask */
12927 :
12928 : case 16:
12929 : if (nonimmediate_operand (operands[1], E_V16QImode)
12930 : && nonimmediate_operand (operands[2], E_V16QImode)
12931 : && (
12932 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12933 : (TARGET_AVX512F) && (
12934 : #line 18044 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12935 : (TARGET_AVX512BW && !(MEM_P (operands[1]) && MEM_P (operands[2]))) &&
12936 : #line 328 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12937 : (TARGET_AVX512VL))))
12938 : return 7863; /* *avx512bw_smaxv16qi3_mask */
12939 : if (!vector_operand (operands[1], E_V16QImode)
12940 : || !vector_operand (operands[2], E_V16QImode)
12941 : || !(
12942 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12943 : (TARGET_AVX512F) &&
12944 : #line 18136 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12945 : (TARGET_SSE4_1
12946 : && (16 == 64 || TARGET_AVX512VL)
12947 : && !(MEM_P (operands[1]) && MEM_P (operands[2])))))
12948 : return -1;
12949 : return 7903; /* *sse4_1_smaxv16qi3_mask */
12950 :
12951 : case 17:
12952 : if (!(
12953 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12954 : (TARGET_AVX512F) && (
12955 : #line 18044 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12956 : (TARGET_AVX512BW && !(MEM_P (operands[1]) && MEM_P (operands[2]))) &&
12957 : #line 328 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12958 : (TARGET_AVX512VL))))
12959 : return -1;
12960 : return 7871; /* *avx512bw_smaxv32qi3_mask */
12961 :
12962 : case 18:
12963 : if (!(
12964 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12965 : (TARGET_AVX512F) &&
12966 : #line 18044 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12967 : (TARGET_AVX512BW && !(MEM_P (operands[1]) && MEM_P (operands[2])))))
12968 : return -1;
12969 : return 7879; /* *avx512bw_smaxv32hi3_mask */
12970 :
12971 : case 19:
12972 : if (!(
12973 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12974 : (TARGET_AVX512F) && (
12975 : #line 18044 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12976 : (TARGET_AVX512BW && !(MEM_P (operands[1]) && MEM_P (operands[2]))) &&
12977 : #line 329 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12978 : (TARGET_AVX512VL))))
12979 : return -1;
12980 : return 7887; /* *avx512bw_smaxv16hi3_mask */
12981 :
12982 : case 20:
12983 : if (!(
12984 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12985 : (TARGET_AVX512F) && (
12986 : #line 18044 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12987 : (TARGET_AVX512BW && !(MEM_P (operands[1]) && MEM_P (operands[2]))) &&
12988 : #line 329 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12989 : (TARGET_AVX512VL))))
12990 : return -1;
12991 : return 7895; /* *avx512bw_smaxv8hi3_mask */
12992 :
12993 : case 21:
12994 : if (!(
12995 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12996 : (TARGET_AVX512F) &&
12997 : #line 32821 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12998 : (TARGET_AVX10_2)))
12999 : return -1;
13000 : return 10666; /* avx10_2_smaxbf16_v32bf_mask */
13001 :
13002 : case 22:
13003 : if (!(
13004 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13005 : (TARGET_AVX512F) &&
13006 : #line 32821 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13007 : (TARGET_AVX10_2)))
13008 : return -1;
13009 : return 10670; /* avx10_2_smaxbf16_v16bf_mask */
13010 :
13011 : case 23:
13012 : if (!(
13013 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13014 : (TARGET_AVX512F) &&
13015 : #line 32821 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13016 : (TARGET_AVX10_2)))
13017 : return -1;
13018 : return 10674; /* avx10_2_smaxbf16_v8bf_mask */
13019 :
13020 : case 24:
13021 : if (!(
13022 : #line 3536 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13023 : (TARGET_SSE) &&
13024 : #line 477 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13025 : (TARGET_AVX512FP16)))
13026 : return -1;
13027 : return 3167; /* *avx512fp16_vmsmaxv8hf3 */
13028 :
13029 : case 25:
13030 : if (!
13031 : #line 3536 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13032 : (TARGET_SSE))
13033 : return -1;
13034 : return 3175; /* *sse_vmsmaxv4sf3 */
13035 :
13036 : case 26:
13037 : if (!(
13038 : #line 3536 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13039 : (TARGET_SSE) &&
13040 : #line 478 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13041 : (TARGET_SSE2)))
13042 : return -1;
13043 : return 3183; /* *sse2_vmsmaxv2df3 */
13044 :
13045 : default:
13046 : return -1;
13047 : }
13048 : }
13049 :
13050 : int
13051 : recog_212 (rtx x1 ATTRIBUTE_UNUSED,
13052 : rtx_insn *insn ATTRIBUTE_UNUSED,
13053 : int *pnum_clobbers ATTRIBUTE_UNUSED)
13054 : {
13055 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
13056 : rtx x2, x3;
13057 : int res ATTRIBUTE_UNUSED;
13058 : x2 = XEXP (x1, 1);
13059 : x3 = XVECEXP (x2, 0, 0);
13060 : operands[1] = x3;
13061 : switch (GET_MODE (operands[0]))
13062 : {
13063 : case E_V32HFmode:
13064 : if (!register_operand (operands[0], E_V32HFmode)
13065 : || GET_MODE (x2) != E_V32HFmode
13066 : || !vector_operand (operands[1], E_V32HFmode)
13067 : || !(
13068 : #line 14356 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13069 : (TARGET_AVX512F) &&
13070 : #line 514 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13071 : (TARGET_AVX512FP16)))
13072 : return -1;
13073 : return 7055; /* avx512bw_getexpv32hf */
13074 :
13075 : case E_V16HFmode:
13076 : if (!register_operand (operands[0], E_V16HFmode)
13077 : || GET_MODE (x2) != E_V16HFmode
13078 : || !vector_operand (operands[1], E_V16HFmode)
13079 : || !(
13080 : #line 14356 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13081 : (TARGET_AVX512F) &&
13082 : #line 515 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13083 : (TARGET_AVX512FP16 && TARGET_AVX512VL)))
13084 : return -1;
13085 : return 7059; /* avx512vl_getexpv16hf */
13086 :
13087 : case E_V8HFmode:
13088 : if (!register_operand (operands[0], E_V8HFmode)
13089 : || GET_MODE (x2) != E_V8HFmode
13090 : || !vector_operand (operands[1], E_V8HFmode)
13091 : || !(
13092 : #line 14356 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13093 : (TARGET_AVX512F) &&
13094 : #line 516 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13095 : (TARGET_AVX512FP16 && TARGET_AVX512VL)))
13096 : return -1;
13097 : return 7063; /* avx512fp16_getexpv8hf */
13098 :
13099 : case E_V16SFmode:
13100 : if (!register_operand (operands[0], E_V16SFmode)
13101 : || GET_MODE (x2) != E_V16SFmode
13102 : || !vector_operand (operands[1], E_V16SFmode)
13103 : || !
13104 : #line 14356 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13105 : (TARGET_AVX512F))
13106 : return -1;
13107 : return 7067; /* avx512f_getexpv16sf */
13108 :
13109 : case E_V8SFmode:
13110 : if (!register_operand (operands[0], E_V8SFmode)
13111 : || GET_MODE (x2) != E_V8SFmode
13112 : || !vector_operand (operands[1], E_V8SFmode)
13113 : || !(
13114 : #line 14356 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13115 : (TARGET_AVX512F) &&
13116 : #line 517 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13117 : (TARGET_AVX512VL)))
13118 : return -1;
13119 : return 7071; /* avx512vl_getexpv8sf */
13120 :
13121 : case E_V4SFmode:
13122 : if (!register_operand (operands[0], E_V4SFmode)
13123 : || GET_MODE (x2) != E_V4SFmode
13124 : || !vector_operand (operands[1], E_V4SFmode)
13125 : || !(
13126 : #line 14356 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13127 : (TARGET_AVX512F) &&
13128 : #line 517 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13129 : (TARGET_AVX512VL)))
13130 : return -1;
13131 : return 7075; /* avx512vl_getexpv4sf */
13132 :
13133 : case E_V8DFmode:
13134 : if (!register_operand (operands[0], E_V8DFmode)
13135 : || GET_MODE (x2) != E_V8DFmode
13136 : || !vector_operand (operands[1], E_V8DFmode)
13137 : || !
13138 : #line 14356 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13139 : (TARGET_AVX512F))
13140 : return -1;
13141 : return 7079; /* avx512f_getexpv8df */
13142 :
13143 : case E_V4DFmode:
13144 : if (!register_operand (operands[0], E_V4DFmode)
13145 : || GET_MODE (x2) != E_V4DFmode
13146 : || !vector_operand (operands[1], E_V4DFmode)
13147 : || !(
13148 : #line 14356 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13149 : (TARGET_AVX512F) &&
13150 : #line 518 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13151 : (TARGET_AVX512VL)))
13152 : return -1;
13153 : return 7083; /* avx512vl_getexpv4df */
13154 :
13155 : case E_V2DFmode:
13156 : if (!register_operand (operands[0], E_V2DFmode)
13157 : || GET_MODE (x2) != E_V2DFmode
13158 : || !vector_operand (operands[1], E_V2DFmode)
13159 : || !(
13160 : #line 14356 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13161 : (TARGET_AVX512F) &&
13162 : #line 518 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13163 : (TARGET_AVX512VL)))
13164 : return -1;
13165 : return 7087; /* avx512vl_getexpv2df */
13166 :
13167 : case E_V32BFmode:
13168 : if (!register_operand (operands[0], E_V32BFmode)
13169 : || GET_MODE (x2) != E_V32BFmode
13170 : || !nonimmediate_operand (operands[1], E_V32BFmode)
13171 : || !
13172 : #line 33126 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13173 : (TARGET_AVX10_2))
13174 : return -1;
13175 : return 10767; /* avx10_2_getexpbf16_v32bf */
13176 :
13177 : case E_V16BFmode:
13178 : if (!register_operand (operands[0], E_V16BFmode)
13179 : || GET_MODE (x2) != E_V16BFmode
13180 : || !nonimmediate_operand (operands[1], E_V16BFmode)
13181 : || !
13182 : #line 33126 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13183 : (TARGET_AVX10_2))
13184 : return -1;
13185 : return 10769; /* avx10_2_getexpbf16_v16bf */
13186 :
13187 : case E_V8BFmode:
13188 : if (!register_operand (operands[0], E_V8BFmode)
13189 : || GET_MODE (x2) != E_V8BFmode
13190 : || !nonimmediate_operand (operands[1], E_V8BFmode)
13191 : || !
13192 : #line 33126 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13193 : (TARGET_AVX10_2))
13194 : return -1;
13195 : return 10771; /* avx10_2_getexpbf16_v8bf */
13196 :
13197 : default:
13198 : return -1;
13199 : }
13200 : }
13201 :
13202 : int
13203 : recog_221 (rtx x1 ATTRIBUTE_UNUSED,
13204 : rtx_insn *insn ATTRIBUTE_UNUSED,
13205 : int *pnum_clobbers ATTRIBUTE_UNUSED)
13206 : {
13207 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
13208 : rtx x2, x3;
13209 : int res ATTRIBUTE_UNUSED;
13210 : x2 = XEXP (x1, 1);
13211 : x3 = XVECEXP (x2, 0, 0);
13212 : operands[1] = x3;
13213 : switch (GET_MODE (operands[0]))
13214 : {
13215 : case E_V4SFmode:
13216 : if (!register_operand (operands[0], E_V4SFmode)
13217 : || GET_MODE (x2) != E_V4SFmode
13218 : || !nonimmediate_operand (operands[1], E_V4SFmode)
13219 : || !
13220 : #line 27681 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13221 : (TARGET_XOP))
13222 : return -1;
13223 : return 9109; /* xop_frczv4sf2 */
13224 :
13225 : case E_V2DFmode:
13226 : if (!register_operand (operands[0], E_V2DFmode)
13227 : || GET_MODE (x2) != E_V2DFmode
13228 : || !nonimmediate_operand (operands[1], E_V2DFmode)
13229 : || !
13230 : #line 27681 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13231 : (TARGET_XOP))
13232 : return -1;
13233 : return 9110; /* xop_frczv2df2 */
13234 :
13235 : case E_V8SFmode:
13236 : if (!register_operand (operands[0], E_V8SFmode)
13237 : || GET_MODE (x2) != E_V8SFmode
13238 : || !nonimmediate_operand (operands[1], E_V8SFmode)
13239 : || !
13240 : #line 27681 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13241 : (TARGET_XOP))
13242 : return -1;
13243 : return 9111; /* xop_frczv8sf2 */
13244 :
13245 : case E_V4DFmode:
13246 : if (!register_operand (operands[0], E_V4DFmode)
13247 : || GET_MODE (x2) != E_V4DFmode
13248 : || !nonimmediate_operand (operands[1], E_V4DFmode)
13249 : || !
13250 : #line 27681 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13251 : (TARGET_XOP))
13252 : return -1;
13253 : return 9112; /* xop_frczv4df2 */
13254 :
13255 : default:
13256 : return -1;
13257 : }
13258 : }
13259 :
13260 : int
13261 : recog_227 (rtx x1 ATTRIBUTE_UNUSED,
13262 : rtx_insn *insn ATTRIBUTE_UNUSED,
13263 : int *pnum_clobbers ATTRIBUTE_UNUSED)
13264 : {
13265 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
13266 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
13267 : rtx x10, x11, x12, x13, x14, x15, x16, x17;
13268 : rtx x18, x19;
13269 : int res ATTRIBUTE_UNUSED;
13270 : x2 = XEXP (x1, 1);
13271 : x3 = XVECEXP (x2, 0, 0);
13272 : x4 = XEXP (x3, 0);
13273 : x5 = XEXP (x4, 0);
13274 : switch (GET_CODE (x5))
13275 : {
13276 : case PLUS:
13277 : switch (pattern783 (x2))
13278 : {
13279 : case 0:
13280 : if (!(
13281 : #line 421 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13282 : (TARGET_AVX512F) && (
13283 : #line 355 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13284 : (TARGET_AVX512F) && (
13285 : #line 2733 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13286 : (TARGET_SSE) &&
13287 : #line 477 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13288 : (TARGET_AVX512FP16)))))
13289 : return -1;
13290 : return 2826; /* avx512fp16_vmaddv8hf3_mask_round */
13291 :
13292 : case 1:
13293 : if (!(
13294 : #line 421 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13295 : (TARGET_AVX512F) && (
13296 : #line 355 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13297 : (TARGET_AVX512F) &&
13298 : #line 2733 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13299 : (TARGET_SSE))))
13300 : return -1;
13301 : return 2834; /* sse_vmaddv4sf3_mask_round */
13302 :
13303 : case 2:
13304 : if (!(
13305 : #line 421 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13306 : (TARGET_AVX512F) && (
13307 : #line 355 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13308 : (TARGET_AVX512F) && (
13309 : #line 2733 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13310 : (TARGET_SSE) &&
13311 : #line 478 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13312 : (TARGET_SSE2)))))
13313 : return -1;
13314 : return 2842; /* sse2_vmaddv2df3_mask_round */
13315 :
13316 : default:
13317 : return -1;
13318 : }
13319 :
13320 : case MINUS:
13321 : switch (pattern783 (x2))
13322 : {
13323 : case 0:
13324 : if (!(
13325 : #line 421 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13326 : (TARGET_AVX512F) && (
13327 : #line 355 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13328 : (TARGET_AVX512F) && (
13329 : #line 2733 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13330 : (TARGET_SSE) &&
13331 : #line 477 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13332 : (TARGET_AVX512FP16)))))
13333 : return -1;
13334 : return 2830; /* avx512fp16_vmsubv8hf3_mask_round */
13335 :
13336 : case 1:
13337 : if (!(
13338 : #line 421 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13339 : (TARGET_AVX512F) && (
13340 : #line 355 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13341 : (TARGET_AVX512F) &&
13342 : #line 2733 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13343 : (TARGET_SSE))))
13344 : return -1;
13345 : return 2838; /* sse_vmsubv4sf3_mask_round */
13346 :
13347 : case 2:
13348 : if (!(
13349 : #line 421 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13350 : (TARGET_AVX512F) && (
13351 : #line 355 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13352 : (TARGET_AVX512F) && (
13353 : #line 2733 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13354 : (TARGET_SSE) &&
13355 : #line 478 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13356 : (TARGET_SSE2)))))
13357 : return -1;
13358 : return 2846; /* sse2_vmsubv2df3_mask_round */
13359 :
13360 : default:
13361 : return -1;
13362 : }
13363 :
13364 : case MULT:
13365 : switch (pattern783 (x2))
13366 : {
13367 : case 0:
13368 : if (!(
13369 : #line 421 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13370 : (TARGET_AVX512F) && (
13371 : #line 355 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13372 : (TARGET_AVX512F) && (
13373 : #line 2824 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13374 : (TARGET_SSE) &&
13375 : #line 477 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13376 : (TARGET_AVX512FP16)))))
13377 : return -1;
13378 : return 2892; /* avx512fp16_vmmulv8hf3_mask_round */
13379 :
13380 : case 1:
13381 : if (!(
13382 : #line 421 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13383 : (TARGET_AVX512F) && (
13384 : #line 355 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13385 : (TARGET_AVX512F) &&
13386 : #line 2824 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13387 : (TARGET_SSE))))
13388 : return -1;
13389 : return 2900; /* sse_vmmulv4sf3_mask_round */
13390 :
13391 : case 2:
13392 : if (!(
13393 : #line 421 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13394 : (TARGET_AVX512F) && (
13395 : #line 355 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13396 : (TARGET_AVX512F) && (
13397 : #line 2824 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13398 : (TARGET_SSE) &&
13399 : #line 478 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13400 : (TARGET_SSE2)))))
13401 : return -1;
13402 : return 2908; /* sse2_vmmulv2df3_mask_round */
13403 :
13404 : default:
13405 : return -1;
13406 : }
13407 :
13408 : case DIV:
13409 : switch (pattern783 (x2))
13410 : {
13411 : case 0:
13412 : if (!(
13413 : #line 421 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13414 : (TARGET_AVX512F) && (
13415 : #line 355 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13416 : (TARGET_AVX512F) && (
13417 : #line 2824 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13418 : (TARGET_SSE) &&
13419 : #line 477 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13420 : (TARGET_AVX512FP16)))))
13421 : return -1;
13422 : return 2896; /* avx512fp16_vmdivv8hf3_mask_round */
13423 :
13424 : case 1:
13425 : if (!(
13426 : #line 421 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13427 : (TARGET_AVX512F) && (
13428 : #line 355 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13429 : (TARGET_AVX512F) &&
13430 : #line 2824 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13431 : (TARGET_SSE))))
13432 : return -1;
13433 : return 2904; /* sse_vmdivv4sf3_mask_round */
13434 :
13435 : case 2:
13436 : if (!(
13437 : #line 421 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13438 : (TARGET_AVX512F) && (
13439 : #line 355 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13440 : (TARGET_AVX512F) && (
13441 : #line 2824 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13442 : (TARGET_SSE) &&
13443 : #line 478 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13444 : (TARGET_SSE2)))))
13445 : return -1;
13446 : return 2912; /* sse2_vmdivv2df3_mask_round */
13447 :
13448 : default:
13449 : return -1;
13450 : }
13451 :
13452 : case SQRT:
13453 : x6 = XEXP (x3, 2);
13454 : if (x6 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
13455 : return -1;
13456 : x7 = XEXP (x5, 0);
13457 : operands[1] = x7;
13458 : x8 = XEXP (x4, 1);
13459 : operands[3] = x8;
13460 : x9 = XEXP (x4, 2);
13461 : operands[4] = x9;
13462 : if (!register_operand (operands[4], E_QImode))
13463 : return -1;
13464 : x10 = XEXP (x3, 1);
13465 : operands[2] = x10;
13466 : x11 = XVECEXP (x2, 0, 1);
13467 : operands[5] = x11;
13468 : if (!const_4_or_8_to_11_operand (operands[5], E_SImode))
13469 : return -1;
13470 : switch (GET_MODE (operands[0]))
13471 : {
13472 : case E_V8HFmode:
13473 : if (pattern1560 (x2,
13474 : E_V8HFmode) != 0
13475 : || !(
13476 : #line 421 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13477 : (TARGET_AVX512F) && (
13478 : #line 355 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13479 : (TARGET_AVX512F) && (
13480 : #line 3106 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13481 : (TARGET_SSE) &&
13482 : #line 477 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13483 : (TARGET_AVX512FP16)))))
13484 : return -1;
13485 : return 2993; /* avx512fp16_vmsqrtv8hf2_mask_round */
13486 :
13487 : case E_V4SFmode:
13488 : if (pattern1560 (x2,
13489 : E_V4SFmode) != 0
13490 : || !(
13491 : #line 421 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13492 : (TARGET_AVX512F) && (
13493 : #line 355 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13494 : (TARGET_AVX512F) &&
13495 : #line 3106 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13496 : (TARGET_SSE))))
13497 : return -1;
13498 : return 2997; /* sse_vmsqrtv4sf2_mask_round */
13499 :
13500 : case E_V2DFmode:
13501 : if (pattern1560 (x2,
13502 : E_V2DFmode) != 0
13503 : || !(
13504 : #line 421 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13505 : (TARGET_AVX512F) && (
13506 : #line 355 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13507 : (TARGET_AVX512F) && (
13508 : #line 3106 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13509 : (TARGET_SSE) &&
13510 : #line 478 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13511 : (TARGET_SSE2)))))
13512 : return -1;
13513 : return 3001; /* sse2_vmsqrtv2df2_mask_round */
13514 :
13515 : default:
13516 : return -1;
13517 : }
13518 :
13519 : case VEC_DUPLICATE:
13520 : x11 = XVECEXP (x2, 0, 1);
13521 : operands[5] = x11;
13522 : x7 = XEXP (x5, 0);
13523 : switch (GET_CODE (x7))
13524 : {
13525 : case SQRT:
13526 : x6 = XEXP (x3, 2);
13527 : if (x6 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
13528 : return -1;
13529 : x12 = XEXP (x7, 0);
13530 : operands[1] = x12;
13531 : x8 = XEXP (x4, 1);
13532 : operands[3] = x8;
13533 : x9 = XEXP (x4, 2);
13534 : operands[4] = x9;
13535 : if (!register_operand (operands[4], E_QImode))
13536 : return -1;
13537 : x10 = XEXP (x3, 1);
13538 : operands[2] = x10;
13539 : if (!const_4_or_8_to_11_operand (operands[5], E_SImode))
13540 : return -1;
13541 : switch (GET_MODE (operands[0]))
13542 : {
13543 : case E_V8HFmode:
13544 : if (pattern1595 (x2,
13545 : E_V8HFmode,
13546 : E_HFmode) != 0
13547 : || !(
13548 : #line 421 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13549 : (TARGET_AVX512F) && (
13550 : #line 355 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13551 : (TARGET_AVX512F) && (
13552 : #line 3125 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13553 : (TARGET_SSE) &&
13554 : #line 477 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13555 : (TARGET_AVX512FP16)))))
13556 : return -1;
13557 : return 3005; /* *avx512fp16_vmsqrtv8hf2_mask_round */
13558 :
13559 : case E_V4SFmode:
13560 : if (pattern1595 (x2,
13561 : E_V4SFmode,
13562 : E_SFmode) != 0
13563 : || !(
13564 : #line 421 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13565 : (TARGET_AVX512F) && (
13566 : #line 355 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13567 : (TARGET_AVX512F) &&
13568 : #line 3125 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13569 : (TARGET_SSE))))
13570 : return -1;
13571 : return 3009; /* *sse_vmsqrtv4sf2_mask_round */
13572 :
13573 : case E_V2DFmode:
13574 : if (pattern1595 (x2,
13575 : E_V2DFmode,
13576 : E_DFmode) != 0
13577 : || !(
13578 : #line 421 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13579 : (TARGET_AVX512F) && (
13580 : #line 355 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13581 : (TARGET_AVX512F) && (
13582 : #line 3125 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13583 : (TARGET_SSE) &&
13584 : #line 478 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13585 : (TARGET_SSE2)))))
13586 : return -1;
13587 : return 3013; /* *sse2_vmsqrtv2df2_mask_round */
13588 :
13589 : default:
13590 : return -1;
13591 : }
13592 :
13593 : case FLOAT_EXTEND:
13594 : x12 = XEXP (x7, 0);
13595 : if (GET_CODE (x12) != VEC_SELECT
13596 : || GET_MODE (x12) != E_HFmode
13597 : || pattern1228 (x3) != 0)
13598 : return -1;
13599 : x13 = XEXP (x12, 0);
13600 : operands[1] = x13;
13601 : if (!register_operand (operands[1], E_V8HFmode))
13602 : return -1;
13603 : x8 = XEXP (x4, 1);
13604 : operands[3] = x8;
13605 : x9 = XEXP (x4, 2);
13606 : operands[4] = x9;
13607 : if (!register_operand (operands[4], E_QImode))
13608 : return -1;
13609 : x10 = XEXP (x3, 1);
13610 : operands[2] = x10;
13611 : if (!const48_operand (operands[5], E_SImode))
13612 : return -1;
13613 : switch (GET_MODE (operands[0]))
13614 : {
13615 : case E_V2DFmode:
13616 : if (pattern1789 (x2,
13617 : E_V2DFmode,
13618 : E_DFmode) != 0
13619 : || !(
13620 : #line 463 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13621 : (TARGET_AVX512F) && (
13622 : #line 355 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13623 : (TARGET_AVX512F) &&
13624 : #line 8632 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13625 : (TARGET_AVX512FP16))))
13626 : return -1;
13627 : return 4803; /* avx512fp16_vcvtsh2sd_mask_round */
13628 :
13629 : case E_V4SFmode:
13630 : if (pattern1789 (x2,
13631 : E_V4SFmode,
13632 : E_SFmode) != 0
13633 : || !(
13634 : #line 463 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13635 : (TARGET_AVX512F) && (
13636 : #line 355 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13637 : (TARGET_AVX512F) &&
13638 : #line 8632 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13639 : (TARGET_AVX512FP16))))
13640 : return -1;
13641 : return 4807; /* avx512fp16_vcvtsh2ss_mask_round */
13642 :
13643 : default:
13644 : return -1;
13645 : }
13646 :
13647 : case FLOAT_TRUNCATE:
13648 : if (!const_4_or_8_to_11_operand (operands[5], E_SImode))
13649 : return -1;
13650 : x12 = XEXP (x7, 0);
13651 : switch (GET_CODE (x12))
13652 : {
13653 : case VEC_SELECT:
13654 : if (pattern1228 (x3) != 0
13655 : || pattern1484 (x2,
13656 : E_HFmode,
13657 : E_V8HFmode) != 0)
13658 : return -1;
13659 : x13 = XEXP (x12, 0);
13660 : operands[1] = x13;
13661 : x8 = XEXP (x4, 1);
13662 : operands[3] = x8;
13663 : if (!nonimm_or_0_operand (operands[3], E_V8HFmode))
13664 : return -1;
13665 : x9 = XEXP (x4, 2);
13666 : operands[4] = x9;
13667 : if (!register_operand (operands[4], E_QImode))
13668 : return -1;
13669 : x10 = XEXP (x3, 1);
13670 : operands[2] = x10;
13671 : if (!register_operand (operands[2], E_V8HFmode))
13672 : return -1;
13673 : switch (GET_MODE (x12))
13674 : {
13675 : case E_DFmode:
13676 : if (!register_operand (operands[1], E_V2DFmode)
13677 : || !(
13678 : #line 421 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13679 : (TARGET_AVX512F) && (
13680 : #line 355 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13681 : (TARGET_AVX512F) &&
13682 : #line 8662 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13683 : (TARGET_AVX512FP16))))
13684 : return -1;
13685 : return 4815; /* avx512fp16_vcvtsd2sh_mask_round */
13686 :
13687 : case E_SFmode:
13688 : if (!register_operand (operands[1], E_V4SFmode)
13689 : || !(
13690 : #line 421 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13691 : (TARGET_AVX512F) && (
13692 : #line 355 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13693 : (TARGET_AVX512F) &&
13694 : #line 8662 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13695 : (TARGET_AVX512FP16))))
13696 : return -1;
13697 : return 4819; /* avx512fp16_vcvtss2sh_mask_round */
13698 :
13699 : default:
13700 : return -1;
13701 : }
13702 :
13703 : case REG:
13704 : case SUBREG:
13705 : case MEM:
13706 : operands[2] = x12;
13707 : if (!nonimmediate_operand (operands[2], E_V2DFmode))
13708 : return -1;
13709 : x9 = XEXP (x4, 2);
13710 : if (x9 != const_int_rtx[MAX_SAVED_CONST_INT + 1]
13711 : || pattern1484 (x2,
13712 : E_V2SFmode,
13713 : E_V4SFmode) != 0)
13714 : return -1;
13715 : x8 = XEXP (x4, 1);
13716 : operands[1] = x8;
13717 : if (!register_operand (operands[1], E_V4SFmode))
13718 : return -1;
13719 : x10 = XEXP (x3, 1);
13720 : operands[3] = x10;
13721 : if (!nonimm_or_0_operand (operands[3], E_V4SFmode))
13722 : return -1;
13723 : x6 = XEXP (x3, 2);
13724 : operands[4] = x6;
13725 : if (!register_operand (operands[4], E_QImode)
13726 : || !(
13727 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13728 : (TARGET_AVX512F) && (
13729 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13730 : (TARGET_AVX512F) &&
13731 : #line 10333 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13732 : (TARGET_SSE2))))
13733 : return -1;
13734 : return 5183; /* sse2_cvtsd2ss_mask_round */
13735 :
13736 : default:
13737 : return -1;
13738 : }
13739 :
13740 : default:
13741 : return -1;
13742 : }
13743 :
13744 : case SMAX:
13745 : switch (pattern784 (x2))
13746 : {
13747 : case 0:
13748 : if (!(
13749 : #line 463 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13750 : (TARGET_AVX512F) && (
13751 : #line 355 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13752 : (TARGET_AVX512F) && (
13753 : #line 3536 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13754 : (TARGET_SSE) &&
13755 : #line 477 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13756 : (TARGET_AVX512FP16)))))
13757 : return -1;
13758 : return 3170; /* *avx512fp16_vmsmaxv8hf3_mask_round */
13759 :
13760 : case 1:
13761 : if (!(
13762 : #line 463 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13763 : (TARGET_AVX512F) && (
13764 : #line 355 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13765 : (TARGET_AVX512F) &&
13766 : #line 3536 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13767 : (TARGET_SSE))))
13768 : return -1;
13769 : return 3178; /* *sse_vmsmaxv4sf3_mask_round */
13770 :
13771 : case 2:
13772 : if (!(
13773 : #line 463 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13774 : (TARGET_AVX512F) && (
13775 : #line 355 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13776 : (TARGET_AVX512F) && (
13777 : #line 3536 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13778 : (TARGET_SSE) &&
13779 : #line 478 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13780 : (TARGET_SSE2)))))
13781 : return -1;
13782 : return 3186; /* *sse2_vmsmaxv2df3_mask_round */
13783 :
13784 : default:
13785 : return -1;
13786 : }
13787 :
13788 : case SMIN:
13789 : switch (pattern784 (x2))
13790 : {
13791 : case 0:
13792 : if (!(
13793 : #line 463 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13794 : (TARGET_AVX512F) && (
13795 : #line 355 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13796 : (TARGET_AVX512F) && (
13797 : #line 3536 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13798 : (TARGET_SSE) &&
13799 : #line 477 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13800 : (TARGET_AVX512FP16)))))
13801 : return -1;
13802 : return 3174; /* *avx512fp16_vmsminv8hf3_mask_round */
13803 :
13804 : case 1:
13805 : if (!(
13806 : #line 463 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13807 : (TARGET_AVX512F) && (
13808 : #line 355 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13809 : (TARGET_AVX512F) &&
13810 : #line 3536 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13811 : (TARGET_SSE))))
13812 : return -1;
13813 : return 3182; /* *sse_vmsminv4sf3_mask_round */
13814 :
13815 : case 2:
13816 : if (!(
13817 : #line 463 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13818 : (TARGET_AVX512F) && (
13819 : #line 355 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13820 : (TARGET_AVX512F) && (
13821 : #line 3536 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13822 : (TARGET_SSE) &&
13823 : #line 478 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13824 : (TARGET_SSE2)))))
13825 : return -1;
13826 : return 3190; /* *sse2_vmsminv2df3_mask_round */
13827 :
13828 : default:
13829 : return -1;
13830 : }
13831 :
13832 : case UNSPEC:
13833 : switch (XVECLEN (x5, 0))
13834 : {
13835 : case 2:
13836 : x6 = XEXP (x3, 2);
13837 : if (GET_CODE (x6) != CONST_INT)
13838 : return -1;
13839 : switch (XINT (x5, 1))
13840 : {
13841 : case 64:
13842 : switch (pattern1140 (x2))
13843 : {
13844 : case 0:
13845 : if (!(
13846 : #line 463 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13847 : (TARGET_AVX512F) && (
13848 : #line 355 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13849 : (TARGET_AVX512F) && (
13850 : #line 3555 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13851 : (TARGET_SSE) &&
13852 : #line 477 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13853 : (TARGET_AVX512FP16)))))
13854 : return -1;
13855 : return 3194; /* avx512fp16_ieee_vmmaxv8hf3_mask_round */
13856 :
13857 : case 1:
13858 : if (!(
13859 : #line 463 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13860 : (TARGET_AVX512F) && (
13861 : #line 355 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13862 : (TARGET_AVX512F) &&
13863 : #line 3555 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13864 : (TARGET_SSE))))
13865 : return -1;
13866 : return 3202; /* sse_ieee_vmmaxv4sf3_mask_round */
13867 :
13868 : case 2:
13869 : if (!(
13870 : #line 463 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13871 : (TARGET_AVX512F) && (
13872 : #line 355 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13873 : (TARGET_AVX512F) && (
13874 : #line 3555 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13875 : (TARGET_SSE) &&
13876 : #line 478 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13877 : (TARGET_SSE2)))))
13878 : return -1;
13879 : return 3210; /* sse2_ieee_vmmaxv2df3_mask_round */
13880 :
13881 : default:
13882 : return -1;
13883 : }
13884 :
13885 : case 63:
13886 : switch (pattern1140 (x2))
13887 : {
13888 : case 0:
13889 : if (!(
13890 : #line 463 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13891 : (TARGET_AVX512F) && (
13892 : #line 355 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13893 : (TARGET_AVX512F) && (
13894 : #line 3555 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13895 : (TARGET_SSE) &&
13896 : #line 477 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13897 : (TARGET_AVX512FP16)))))
13898 : return -1;
13899 : return 3198; /* avx512fp16_ieee_vmminv8hf3_mask_round */
13900 :
13901 : case 1:
13902 : if (!(
13903 : #line 463 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13904 : (TARGET_AVX512F) && (
13905 : #line 355 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13906 : (TARGET_AVX512F) &&
13907 : #line 3555 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13908 : (TARGET_SSE))))
13909 : return -1;
13910 : return 3206; /* sse_ieee_vmminv4sf3_mask_round */
13911 :
13912 : case 2:
13913 : if (!(
13914 : #line 463 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13915 : (TARGET_AVX512F) && (
13916 : #line 355 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13917 : (TARGET_AVX512F) && (
13918 : #line 3555 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13919 : (TARGET_SSE) &&
13920 : #line 478 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13921 : (TARGET_SSE2)))))
13922 : return -1;
13923 : return 3214; /* sse2_ieee_vmminv2df3_mask_round */
13924 :
13925 : default:
13926 : return -1;
13927 : }
13928 :
13929 : case 222:
13930 : if (pattern1141 (x2) != 0
13931 : || !(
13932 : #line 437 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13933 : (TARGET_AVX512F) && (
13934 : #line 389 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13935 : (TARGET_AVX512F) &&
13936 : #line 7869 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13937 : (TARGET_AVX512FP16))))
13938 : return -1;
13939 : return 4440; /* avx512fp16_fmulcsh_v8hf_mask_round */
13940 :
13941 : case 223:
13942 : if (pattern1141 (x2) != 0
13943 : || !(
13944 : #line 437 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13945 : (TARGET_AVX512F) && (
13946 : #line 389 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13947 : (TARGET_AVX512F) &&
13948 : #line 7869 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13949 : (TARGET_AVX512FP16))))
13950 : return -1;
13951 : return 4444; /* avx512fp16_fcmulcsh_v8hf_mask_round */
13952 :
13953 : case 59:
13954 : if (XWINT (x6, 0) != 1L)
13955 : return -1;
13956 : x14 = XVECEXP (x5, 0, 0);
13957 : operands[1] = x14;
13958 : x15 = XVECEXP (x5, 0, 1);
13959 : operands[2] = x15;
13960 : x8 = XEXP (x4, 1);
13961 : operands[3] = x8;
13962 : x9 = XEXP (x4, 2);
13963 : operands[4] = x9;
13964 : if (!register_operand (operands[4], E_QImode))
13965 : return -1;
13966 : x11 = XVECEXP (x2, 0, 1);
13967 : operands[5] = x11;
13968 : if (!const_4_or_8_to_11_operand (operands[5], E_SImode))
13969 : return -1;
13970 : switch (pattern1662 (x2))
13971 : {
13972 : case 0:
13973 : if (!(
13974 : #line 421 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13975 : (TARGET_AVX512F) && (
13976 : #line 355 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13977 : (TARGET_AVX512F) && (
13978 : #line 13937 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13979 : (TARGET_AVX512F) &&
13980 : #line 477 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13981 : (TARGET_AVX512FP16)))))
13982 : return -1;
13983 : return 5432; /* avx512f_vmscalefv8hf_mask_round */
13984 :
13985 : case 1:
13986 : if (!
13987 : #line 421 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13988 : (TARGET_AVX512F))
13989 : return -1;
13990 : return 5436; /* avx512f_vmscalefv4sf_mask_round */
13991 :
13992 : case 2:
13993 : if (!(
13994 : #line 421 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13995 : (TARGET_AVX512F) && (
13996 : #line 355 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13997 : (TARGET_AVX512F) && (
13998 : #line 13937 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13999 : (TARGET_AVX512F) &&
14000 : #line 478 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14001 : (TARGET_SSE2)))))
14002 : return -1;
14003 : return 5440; /* avx512f_vmscalefv2df_mask_round */
14004 :
14005 : default:
14006 : return -1;
14007 : }
14008 :
14009 : case 166:
14010 : if (XWINT (x6, 0) != 1L)
14011 : return -1;
14012 : x14 = XVECEXP (x5, 0, 0);
14013 : operands[1] = x14;
14014 : x15 = XVECEXP (x5, 0, 1);
14015 : operands[2] = x15;
14016 : x8 = XEXP (x4, 1);
14017 : operands[3] = x8;
14018 : x9 = XEXP (x4, 2);
14019 : operands[4] = x9;
14020 : if (!register_operand (operands[4], E_QImode))
14021 : return -1;
14022 : x11 = XVECEXP (x2, 0, 1);
14023 : operands[5] = x11;
14024 : if (!const48_operand (operands[5], E_SImode))
14025 : return -1;
14026 : switch (pattern1662 (x2))
14027 : {
14028 : case 0:
14029 : if (!(
14030 : #line 463 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14031 : (TARGET_AVX512F) && (
14032 : #line 355 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14033 : (TARGET_AVX512F) && (
14034 : #line 14370 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14035 : (TARGET_AVX512F) &&
14036 : #line 477 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14037 : (TARGET_AVX512FP16)))))
14038 : return -1;
14039 : return 7094; /* avx512f_sgetexpv8hf_mask_round */
14040 :
14041 : case 1:
14042 : if (!
14043 : #line 463 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14044 : (TARGET_AVX512F))
14045 : return -1;
14046 : return 7098; /* avx512f_sgetexpv4sf_mask_round */
14047 :
14048 : case 2:
14049 : if (!(
14050 : #line 463 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14051 : (TARGET_AVX512F) && (
14052 : #line 355 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14053 : (TARGET_AVX512F) && (
14054 : #line 14370 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14055 : (TARGET_AVX512F) &&
14056 : #line 478 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14057 : (TARGET_SSE2)))))
14058 : return -1;
14059 : return 7102; /* avx512f_sgetexpv2df_mask_round */
14060 :
14061 : default:
14062 : return -1;
14063 : }
14064 :
14065 : case 95:
14066 : if (XWINT (x6, 0) != 1L)
14067 : return -1;
14068 : x14 = XVECEXP (x5, 0, 0);
14069 : operands[2] = x14;
14070 : x15 = XVECEXP (x5, 0, 1);
14071 : operands[3] = x15;
14072 : if (!const_0_to_255_operand (operands[3], E_SImode))
14073 : return -1;
14074 : x8 = XEXP (x4, 1);
14075 : operands[4] = x8;
14076 : x9 = XEXP (x4, 2);
14077 : operands[5] = x9;
14078 : if (!register_operand (operands[5], E_QImode))
14079 : return -1;
14080 : x10 = XEXP (x3, 1);
14081 : operands[1] = x10;
14082 : x11 = XVECEXP (x2, 0, 1);
14083 : operands[6] = x11;
14084 : if (!const48_operand (operands[6], E_SImode))
14085 : return -1;
14086 : switch (GET_MODE (operands[0]))
14087 : {
14088 : case E_V8HFmode:
14089 : if (pattern1754 (x2,
14090 : E_V8HFmode) != 0
14091 : || !(
14092 : #line 463 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14093 : (TARGET_AVX512F) && (
14094 : #line 355 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14095 : (TARGET_AVX512F) && (
14096 : #line 14564 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14097 : (TARGET_AVX512F) &&
14098 : #line 477 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14099 : (TARGET_AVX512FP16)))))
14100 : return -1;
14101 : return 7210; /* avx512f_rndscalev8hf_mask_round */
14102 :
14103 : case E_V4SFmode:
14104 : if (pattern1754 (x2,
14105 : E_V4SFmode) != 0
14106 : || !
14107 : #line 463 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14108 : (TARGET_AVX512F))
14109 : return -1;
14110 : return 7214; /* avx512f_rndscalev4sf_mask_round */
14111 :
14112 : case E_V2DFmode:
14113 : if (pattern1754 (x2,
14114 : E_V2DFmode) != 0
14115 : || !(
14116 : #line 463 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14117 : (TARGET_AVX512F) && (
14118 : #line 355 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14119 : (TARGET_AVX512F) && (
14120 : #line 14564 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14121 : (TARGET_AVX512F) &&
14122 : #line 478 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14123 : (TARGET_SSE2)))))
14124 : return -1;
14125 : return 7218; /* avx512f_rndscalev2df_mask_round */
14126 :
14127 : default:
14128 : return -1;
14129 : }
14130 :
14131 : default:
14132 : return -1;
14133 : }
14134 :
14135 : case 3:
14136 : x6 = XEXP (x3, 2);
14137 : if (GET_CODE (x6) != CONST_INT)
14138 : return -1;
14139 : x14 = XVECEXP (x5, 0, 0);
14140 : operands[1] = x14;
14141 : x15 = XVECEXP (x5, 0, 1);
14142 : operands[2] = x15;
14143 : x16 = XVECEXP (x5, 0, 2);
14144 : operands[3] = x16;
14145 : switch (XINT (x5, 1))
14146 : {
14147 : case 193:
14148 : switch (pattern1408 (x2))
14149 : {
14150 : case 0:
14151 : if (!(
14152 : #line 463 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14153 : (TARGET_AVX512F) && (
14154 : #line 355 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14155 : (TARGET_AVX512F) && (
14156 : #line 4269 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14157 : (TARGET_AVX512DQ || (VALID_AVX512FP16_REG_MODE (V8HFmode))) &&
14158 : #line 477 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14159 : (TARGET_AVX512FP16)))))
14160 : return -1;
14161 : return 3268; /* reducesv8hf_mask_round */
14162 :
14163 : case 1:
14164 : if (!(
14165 : #line 463 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14166 : (TARGET_AVX512F) && (
14167 : #line 355 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14168 : (TARGET_AVX512F) &&
14169 : #line 4269 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14170 : (TARGET_AVX512DQ || (VALID_AVX512FP16_REG_MODE (V4SFmode))))))
14171 : return -1;
14172 : return 3272; /* reducesv4sf_mask_round */
14173 :
14174 : case 2:
14175 : if (!(
14176 : #line 463 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14177 : (TARGET_AVX512F) && (
14178 : #line 355 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14179 : (TARGET_AVX512F) && (
14180 : #line 4269 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14181 : (TARGET_AVX512DQ || (VALID_AVX512FP16_REG_MODE (V2DFmode))) &&
14182 : #line 478 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14183 : (TARGET_SSE2)))))
14184 : return -1;
14185 : return 3276; /* reducesv2df_mask_round */
14186 :
14187 : default:
14188 : return -1;
14189 : }
14190 :
14191 : case 218:
14192 : switch (pattern1409 (x2))
14193 : {
14194 : case 0:
14195 : if (!(
14196 : #line 437 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14197 : (TARGET_AVX512F) && (
14198 : #line 371 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14199 : (TARGET_AVX512F) &&
14200 : #line 7834 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14201 : (TARGET_AVX512FP16))))
14202 : return -1;
14203 : return 4428; /* avx512fp16_fma_fmaddcsh_v8hf_maskz_round */
14204 :
14205 : case 1:
14206 : if (!(
14207 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14208 : (TARGET_AVX512F) &&
14209 : #line 7854 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14210 : (TARGET_AVX512FP16)))
14211 : return -1;
14212 : return 4434; /* avx512fp16_fmaddcsh_v8hf_mask_round */
14213 :
14214 : default:
14215 : return -1;
14216 : }
14217 :
14218 : case 220:
14219 : switch (pattern1409 (x2))
14220 : {
14221 : case 0:
14222 : if (!(
14223 : #line 437 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14224 : (TARGET_AVX512F) && (
14225 : #line 371 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14226 : (TARGET_AVX512F) &&
14227 : #line 7834 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14228 : (TARGET_AVX512FP16))))
14229 : return -1;
14230 : return 4432; /* avx512fp16_fma_fcmaddcsh_v8hf_maskz_round */
14231 :
14232 : case 1:
14233 : if (!(
14234 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14235 : (TARGET_AVX512F) &&
14236 : #line 7854 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14237 : (TARGET_AVX512FP16)))
14238 : return -1;
14239 : return 4436; /* avx512fp16_fcmaddcsh_v8hf_mask_round */
14240 :
14241 : default:
14242 : return -1;
14243 : }
14244 :
14245 : case 195:
14246 : if (XWINT (x6, 0) != 1L
14247 : || !const_0_to_15_operand (operands[3], E_SImode))
14248 : return -1;
14249 : x8 = XEXP (x4, 1);
14250 : operands[4] = x8;
14251 : x9 = XEXP (x4, 2);
14252 : operands[5] = x9;
14253 : if (!register_operand (operands[5], E_QImode))
14254 : return -1;
14255 : x11 = XVECEXP (x2, 0, 1);
14256 : operands[6] = x11;
14257 : if (!const48_operand (operands[6], E_SImode))
14258 : return -1;
14259 : x10 = XEXP (x3, 1);
14260 : if (!rtx_equal_p (x10, operands[1]))
14261 : return -1;
14262 : switch (GET_MODE (operands[0]))
14263 : {
14264 : case E_V4SFmode:
14265 : if (pattern1406 (x2,
14266 : E_V4SFmode) != 0
14267 : || !(
14268 : #line 463 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14269 : (TARGET_AVX512F) && (
14270 : #line 355 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14271 : (TARGET_AVX512F) &&
14272 : #line 30536 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14273 : (TARGET_AVX512DQ))))
14274 : return -1;
14275 : return 10050; /* avx512dq_rangesv4sf_mask_round */
14276 :
14277 : case E_V2DFmode:
14278 : if (pattern1406 (x2,
14279 : E_V2DFmode) != 0
14280 : || !(
14281 : #line 463 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14282 : (TARGET_AVX512F) && (
14283 : #line 355 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14284 : (TARGET_AVX512F) && (
14285 : #line 30536 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14286 : (TARGET_AVX512DQ) &&
14287 : #line 473 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14288 : (TARGET_SSE2)))))
14289 : return -1;
14290 : return 10054; /* avx512dq_rangesv2df_mask_round */
14291 :
14292 : default:
14293 : return -1;
14294 : }
14295 :
14296 : case 167:
14297 : if (XWINT (x6, 0) != 1L
14298 : || !const_0_to_15_operand (operands[3], E_SImode))
14299 : return -1;
14300 : switch (pattern1407 (x2))
14301 : {
14302 : case 0:
14303 : if (!(
14304 : #line 463 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14305 : (TARGET_AVX512F) && (
14306 : #line 355 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14307 : (TARGET_AVX512F) && (
14308 : #line 30604 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14309 : (TARGET_AVX512F) &&
14310 : #line 477 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14311 : (TARGET_AVX512FP16)))))
14312 : return -1;
14313 : return 10118; /* avx512f_vgetmantv8hf_mask_round */
14314 :
14315 : case 1:
14316 : if (!
14317 : #line 463 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14318 : (TARGET_AVX512F))
14319 : return -1;
14320 : return 10122; /* avx512f_vgetmantv4sf_mask_round */
14321 :
14322 : case 2:
14323 : if (!(
14324 : #line 463 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14325 : (TARGET_AVX512F) && (
14326 : #line 355 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14327 : (TARGET_AVX512F) && (
14328 : #line 30604 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14329 : (TARGET_AVX512F) &&
14330 : #line 478 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14331 : (TARGET_SSE2)))))
14332 : return -1;
14333 : return 10126; /* avx512f_vgetmantv2df_mask_round */
14334 :
14335 : default:
14336 : return -1;
14337 : }
14338 :
14339 : case 279:
14340 : switch (pattern1408 (x2))
14341 : {
14342 : case 0:
14343 : if (!(
14344 : #line 463 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14345 : (TARGET_AVX512F) && (
14346 : #line 355 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14347 : (TARGET_AVX512F) && (
14348 : #line 33376 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14349 : (TARGET_AVX10_2) &&
14350 : #line 477 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14351 : (TARGET_AVX512FP16)))))
14352 : return -1;
14353 : return 11016; /* avx10_2_minmaxsv8hf_mask_round */
14354 :
14355 : case 1:
14356 : if (!(
14357 : #line 463 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14358 : (TARGET_AVX512F) && (
14359 : #line 355 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14360 : (TARGET_AVX512F) &&
14361 : #line 33376 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14362 : (TARGET_AVX10_2))))
14363 : return -1;
14364 : return 11020; /* avx10_2_minmaxsv4sf_mask_round */
14365 :
14366 : case 2:
14367 : if (!(
14368 : #line 463 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14369 : (TARGET_AVX512F) && (
14370 : #line 355 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14371 : (TARGET_AVX512F) && (
14372 : #line 33376 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14373 : (TARGET_AVX10_2) &&
14374 : #line 478 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14375 : (TARGET_SSE2)))))
14376 : return -1;
14377 : return 11024; /* avx10_2_minmaxsv2df_mask_round */
14378 :
14379 : default:
14380 : return -1;
14381 : }
14382 :
14383 : default:
14384 : return -1;
14385 : }
14386 :
14387 : case 4:
14388 : if (XINT (x5, 1) != 164)
14389 : return -1;
14390 : x14 = XVECEXP (x5, 0, 0);
14391 : operands[1] = x14;
14392 : x15 = XVECEXP (x5, 0, 1);
14393 : operands[2] = x15;
14394 : x16 = XVECEXP (x5, 0, 2);
14395 : operands[3] = x16;
14396 : x17 = XVECEXP (x5, 0, 3);
14397 : operands[4] = x17;
14398 : if (!const_0_to_255_operand (operands[4], E_SImode))
14399 : return -1;
14400 : x11 = XVECEXP (x2, 0, 1);
14401 : if (!const48_operand (x11, E_SImode))
14402 : return -1;
14403 : x8 = XEXP (x4, 1);
14404 : switch (GET_CODE (x8))
14405 : {
14406 : case CONST_INT:
14407 : case CONST_DOUBLE:
14408 : case CONST_VECTOR:
14409 : operands[5] = x8;
14410 : x6 = XEXP (x3, 2);
14411 : if (x6 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
14412 : return -1;
14413 : x9 = XEXP (x4, 2);
14414 : operands[6] = x9;
14415 : if (!register_operand (operands[6], E_QImode))
14416 : return -1;
14417 : operands[7] = x11;
14418 : x10 = XEXP (x3, 1);
14419 : if (!rtx_equal_p (x10, operands[2]))
14420 : return -1;
14421 : switch (GET_MODE (operands[0]))
14422 : {
14423 : case E_V4SFmode:
14424 : if (pattern1790 (x2,
14425 : E_V4SFmode,
14426 : E_V4SImode) != 0
14427 : || !
14428 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14429 : (TARGET_AVX512F))
14430 : return -1;
14431 : return 7162; /* avx512f_sfixupimmv4sf_maskz_1_round */
14432 :
14433 : case E_V2DFmode:
14434 : if (pattern1790 (x2,
14435 : E_V2DFmode,
14436 : E_V2DImode) != 0
14437 : || !(
14438 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14439 : (TARGET_AVX512F) && (
14440 : #line 154 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14441 : (TARGET_AVX512F) && (
14442 : #line 14519 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14443 : (TARGET_AVX512F) &&
14444 : #line 473 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14445 : (TARGET_SSE2)))))
14446 : return -1;
14447 : return 7166; /* avx512f_sfixupimmv2df_maskz_1_round */
14448 :
14449 : default:
14450 : return -1;
14451 : }
14452 :
14453 : case REG:
14454 : case SUBREG:
14455 : if (!rtx_equal_p (x8, operands[2]))
14456 : return -1;
14457 : x9 = XEXP (x4, 2);
14458 : if (x9 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
14459 : return -1;
14460 : x6 = XEXP (x3, 2);
14461 : operands[5] = x6;
14462 : if (!register_operand (operands[5], E_QImode))
14463 : return -1;
14464 : operands[6] = x11;
14465 : x10 = XEXP (x3, 1);
14466 : if (!rtx_equal_p (x10, operands[1]))
14467 : return -1;
14468 : switch (GET_MODE (operands[0]))
14469 : {
14470 : case E_V4SFmode:
14471 : if (pattern1791 (x2,
14472 : E_V4SImode,
14473 : E_V4SFmode) != 0
14474 : || !
14475 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14476 : (TARGET_AVX512F))
14477 : return -1;
14478 : return 7168; /* avx512f_sfixupimmv4sf_mask_round */
14479 :
14480 : case E_V2DFmode:
14481 : if (pattern1791 (x2,
14482 : E_V2DImode,
14483 : E_V2DFmode) != 0
14484 : || !(
14485 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14486 : (TARGET_AVX512F) && (
14487 : #line 14538 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14488 : (TARGET_AVX512F) &&
14489 : #line 473 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14490 : (TARGET_SSE2))))
14491 : return -1;
14492 : return 7170; /* avx512f_sfixupimmv2df_mask_round */
14493 :
14494 : default:
14495 : return -1;
14496 : }
14497 :
14498 : default:
14499 : return -1;
14500 : }
14501 :
14502 : default:
14503 : return -1;
14504 : }
14505 :
14506 : case FMA:
14507 : return recog_222 (x1, insn, pnum_clobbers);
14508 :
14509 : case FLOAT_EXTEND:
14510 : if (GET_MODE (x5) != E_V2DFmode)
14511 : return -1;
14512 : x7 = XEXP (x5, 0);
14513 : if (pattern908 (x7,
14514 : 2,
14515 : E_V2SFmode) != 0)
14516 : return -1;
14517 : x18 = XEXP (x7, 1);
14518 : x19 = XVECEXP (x18, 0, 1);
14519 : if (x19 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
14520 : return -1;
14521 : x9 = XEXP (x4, 2);
14522 : if (x9 != const_int_rtx[MAX_SAVED_CONST_INT + 1]
14523 : || pattern1487 (x2) != 0)
14524 : return -1;
14525 : x12 = XEXP (x7, 0);
14526 : operands[2] = x12;
14527 : if (!register_operand (operands[2], E_V4SFmode))
14528 : return -1;
14529 : x8 = XEXP (x4, 1);
14530 : operands[1] = x8;
14531 : if (!register_operand (operands[1], E_V2DFmode))
14532 : return -1;
14533 : x10 = XEXP (x3, 1);
14534 : operands[3] = x10;
14535 : if (!nonimm_or_0_operand (operands[3], E_V2DFmode))
14536 : return -1;
14537 : x6 = XEXP (x3, 2);
14538 : operands[4] = x6;
14539 : if (!register_operand (operands[4], E_QImode))
14540 : return -1;
14541 : x11 = XVECEXP (x2, 0, 1);
14542 : operands[5] = x11;
14543 : if (!const48_operand (operands[5], E_SImode)
14544 : || !(
14545 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14546 : (TARGET_AVX512F) && (
14547 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14548 : (TARGET_AVX512F) &&
14549 : #line 10377 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14550 : (TARGET_SSE2))))
14551 : return -1;
14552 : return 5188; /* sse2_cvtss2sd_mask_round */
14553 :
14554 : default:
14555 : return -1;
14556 : }
14557 : }
14558 :
14559 : int
14560 : recog_253 (rtx x1 ATTRIBUTE_UNUSED,
14561 : rtx_insn *insn ATTRIBUTE_UNUSED,
14562 : int *pnum_clobbers ATTRIBUTE_UNUSED)
14563 : {
14564 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
14565 : rtx x2, x3, x4, x5, x6;
14566 : int res ATTRIBUTE_UNUSED;
14567 : x2 = XEXP (x1, 0);
14568 : operands[0] = x2;
14569 : x3 = XEXP (x1, 1);
14570 : x4 = XVECEXP (x3, 0, 0);
14571 : switch (GET_CODE (x4))
14572 : {
14573 : case CONST_VECTOR:
14574 : switch (pattern497 (x3))
14575 : {
14576 : case 0:
14577 : if (!
14578 : #line 21938 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14579 : (TARGET_AVX512VL && TARGET_AVX512VBMI
14580 : && ix86_pre_reload_split ()))
14581 : return -1;
14582 : return 8528; /* *vec_concatv16qi_permt2 */
14583 :
14584 : case 1:
14585 : if (!
14586 : #line 21963 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14587 : (TARGET_AVX512VL && TARGET_AVX512BW
14588 : && ix86_pre_reload_split ()))
14589 : return -1;
14590 : return 8529; /* *vec_concatv8hi_permt2 */
14591 :
14592 : default:
14593 : return -1;
14594 : }
14595 :
14596 : case REG:
14597 : case SUBREG:
14598 : operands[1] = x4;
14599 : x5 = XVECEXP (x3, 0, 1);
14600 : operands[2] = x5;
14601 : x6 = XVECEXP (x3, 0, 2);
14602 : operands[3] = x6;
14603 : switch (GET_MODE (operands[0]))
14604 : {
14605 : case E_V16SImode:
14606 : if (pattern178 (x3,
14607 : E_V16SImode) != 0
14608 : || !
14609 : #line 28926 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14610 : (TARGET_AVX512F))
14611 : return -1;
14612 : return 9455; /* avx512f_vpermt2varv16si3 */
14613 :
14614 : case E_V16SFmode:
14615 : if (pattern1037 (x3,
14616 : E_V16SFmode,
14617 : E_V16SImode) != 0
14618 : || !
14619 : #line 28926 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14620 : (TARGET_AVX512F))
14621 : return -1;
14622 : return 9457; /* avx512f_vpermt2varv16sf3 */
14623 :
14624 : case E_V8DImode:
14625 : if (pattern178 (x3,
14626 : E_V8DImode) != 0
14627 : || !
14628 : #line 28926 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14629 : (TARGET_AVX512F))
14630 : return -1;
14631 : return 9459; /* avx512f_vpermt2varv8di3 */
14632 :
14633 : case E_V8DFmode:
14634 : if (pattern1037 (x3,
14635 : E_V8DFmode,
14636 : E_V8DImode) != 0
14637 : || !
14638 : #line 28926 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14639 : (TARGET_AVX512F))
14640 : return -1;
14641 : return 9461; /* avx512f_vpermt2varv8df3 */
14642 :
14643 : case E_V8SImode:
14644 : if (pattern178 (x3,
14645 : E_V8SImode) != 0
14646 : || !(
14647 : #line 28926 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14648 : (TARGET_AVX512F) &&
14649 : #line 28835 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14650 : (TARGET_AVX512VL)))
14651 : return -1;
14652 : return 9463; /* avx512vl_vpermt2varv8si3 */
14653 :
14654 : case E_V8SFmode:
14655 : if (pattern1037 (x3,
14656 : E_V8SFmode,
14657 : E_V8SImode) != 0
14658 : || !(
14659 : #line 28926 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14660 : (TARGET_AVX512F) &&
14661 : #line 28835 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14662 : (TARGET_AVX512VL)))
14663 : return -1;
14664 : return 9465; /* avx512vl_vpermt2varv8sf3 */
14665 :
14666 : case E_V4DImode:
14667 : if (pattern178 (x3,
14668 : E_V4DImode) != 0
14669 : || !(
14670 : #line 28926 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14671 : (TARGET_AVX512F) &&
14672 : #line 28836 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14673 : (TARGET_AVX512VL)))
14674 : return -1;
14675 : return 9467; /* avx512vl_vpermt2varv4di3 */
14676 :
14677 : case E_V4DFmode:
14678 : if (pattern1037 (x3,
14679 : E_V4DFmode,
14680 : E_V4DImode) != 0
14681 : || !(
14682 : #line 28926 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14683 : (TARGET_AVX512F) &&
14684 : #line 28836 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14685 : (TARGET_AVX512VL)))
14686 : return -1;
14687 : return 9469; /* avx512vl_vpermt2varv4df3 */
14688 :
14689 : case E_V4SImode:
14690 : if (pattern178 (x3,
14691 : E_V4SImode) != 0
14692 : || !(
14693 : #line 28926 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14694 : (TARGET_AVX512F) &&
14695 : #line 28837 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14696 : (TARGET_AVX512VL)))
14697 : return -1;
14698 : return 9471; /* avx512vl_vpermt2varv4si3 */
14699 :
14700 : case E_V4SFmode:
14701 : if (pattern1037 (x3,
14702 : E_V4SFmode,
14703 : E_V4SImode) != 0
14704 : || !(
14705 : #line 28926 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14706 : (TARGET_AVX512F) &&
14707 : #line 28837 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14708 : (TARGET_AVX512VL)))
14709 : return -1;
14710 : return 9473; /* avx512vl_vpermt2varv4sf3 */
14711 :
14712 : case E_V2DImode:
14713 : if (pattern178 (x3,
14714 : E_V2DImode) != 0
14715 : || !(
14716 : #line 28926 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14717 : (TARGET_AVX512F) &&
14718 : #line 28838 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14719 : (TARGET_AVX512VL)))
14720 : return -1;
14721 : return 9475; /* avx512vl_vpermt2varv2di3 */
14722 :
14723 : case E_V2DFmode:
14724 : if (pattern1037 (x3,
14725 : E_V2DFmode,
14726 : E_V2DImode) != 0
14727 : || !(
14728 : #line 28926 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14729 : (TARGET_AVX512F) &&
14730 : #line 28838 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14731 : (TARGET_AVX512VL)))
14732 : return -1;
14733 : return 9477; /* avx512vl_vpermt2varv2df3 */
14734 :
14735 : case E_V32HImode:
14736 : if (pattern178 (x3,
14737 : E_V32HImode) != 0
14738 : || !(
14739 : #line 28926 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14740 : (TARGET_AVX512F) &&
14741 : #line 28839 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14742 : (TARGET_AVX512BW)))
14743 : return -1;
14744 : return 9479; /* avx512bw_vpermt2varv32hi3 */
14745 :
14746 : case E_V16HImode:
14747 : if (pattern178 (x3,
14748 : E_V16HImode) != 0
14749 : || !(
14750 : #line 28926 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14751 : (TARGET_AVX512F) &&
14752 : #line 28840 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14753 : (TARGET_AVX512BW && TARGET_AVX512VL)))
14754 : return -1;
14755 : return 9481; /* avx512vl_vpermt2varv16hi3 */
14756 :
14757 : case E_V8HImode:
14758 : if (pattern178 (x3,
14759 : E_V8HImode) != 0
14760 : || !(
14761 : #line 28926 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14762 : (TARGET_AVX512F) &&
14763 : #line 28841 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14764 : (TARGET_AVX512BW && TARGET_AVX512VL)))
14765 : return -1;
14766 : return 9483; /* avx512vl_vpermt2varv8hi3 */
14767 :
14768 : case E_V64QImode:
14769 : if (pattern178 (x3,
14770 : E_V64QImode) != 0
14771 : || !(
14772 : #line 28926 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14773 : (TARGET_AVX512F) &&
14774 : #line 28842 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14775 : (TARGET_AVX512VBMI)))
14776 : return -1;
14777 : return 9485; /* avx512bw_vpermt2varv64qi3 */
14778 :
14779 : case E_V32QImode:
14780 : if (pattern178 (x3,
14781 : E_V32QImode) != 0
14782 : || !(
14783 : #line 28926 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14784 : (TARGET_AVX512F) &&
14785 : #line 28843 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14786 : (TARGET_AVX512VBMI && TARGET_AVX512VL)))
14787 : return -1;
14788 : return 9487; /* avx512vl_vpermt2varv32qi3 */
14789 :
14790 : case E_V16QImode:
14791 : if (pattern178 (x3,
14792 : E_V16QImode) != 0
14793 : || !(
14794 : #line 28926 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14795 : (TARGET_AVX512F) &&
14796 : #line 28844 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14797 : (TARGET_AVX512VBMI && TARGET_AVX512VL)))
14798 : return -1;
14799 : return 9489; /* avx512vl_vpermt2varv16qi3 */
14800 :
14801 : case E_V32HFmode:
14802 : if (pattern1037 (x3,
14803 : E_V32HFmode,
14804 : E_V32HImode) != 0
14805 : || !
14806 : #line 28941 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14807 : (TARGET_AVX512BW))
14808 : return -1;
14809 : return 9491; /* avx512bw_vpermt2varv32hf3 */
14810 :
14811 : case E_V16HFmode:
14812 : if (pattern1037 (x3,
14813 : E_V16HFmode,
14814 : E_V16HImode) != 0
14815 : || !(
14816 : #line 28941 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14817 : (TARGET_AVX512BW) &&
14818 : #line 548 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14819 : (TARGET_AVX512VL)))
14820 : return -1;
14821 : return 9493; /* avx512vl_vpermt2varv16hf3 */
14822 :
14823 : case E_V8HFmode:
14824 : if (pattern1037 (x3,
14825 : E_V8HFmode,
14826 : E_V8HImode) != 0
14827 : || !(
14828 : #line 28941 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14829 : (TARGET_AVX512BW) &&
14830 : #line 548 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14831 : (TARGET_AVX512VL)))
14832 : return -1;
14833 : return 9495; /* avx512fp16_vpermt2varv8hf3 */
14834 :
14835 : case E_V32BFmode:
14836 : if (pattern1037 (x3,
14837 : E_V32BFmode,
14838 : E_V32HImode) != 0
14839 : || !
14840 : #line 28941 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14841 : (TARGET_AVX512BW))
14842 : return -1;
14843 : return 9497; /* avx512bw_vpermt2varv32bf3 */
14844 :
14845 : case E_V16BFmode:
14846 : if (pattern1037 (x3,
14847 : E_V16BFmode,
14848 : E_V16HImode) != 0
14849 : || !(
14850 : #line 28941 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14851 : (TARGET_AVX512BW) &&
14852 : #line 549 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14853 : (TARGET_AVX512VL)))
14854 : return -1;
14855 : return 9499; /* avx512vl_vpermt2varv16bf3 */
14856 :
14857 : case E_V8BFmode:
14858 : if (pattern1037 (x3,
14859 : E_V8BFmode,
14860 : E_V8HImode) != 0
14861 : || !(
14862 : #line 28941 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14863 : (TARGET_AVX512BW) &&
14864 : #line 549 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14865 : (TARGET_AVX512VL)))
14866 : return -1;
14867 : return 9501; /* avx512vl_vpermt2varv8bf3 */
14868 :
14869 : default:
14870 : return -1;
14871 : }
14872 :
14873 : default:
14874 : return -1;
14875 : }
14876 : }
14877 :
14878 : int
14879 : recog_254 (rtx x1 ATTRIBUTE_UNUSED,
14880 : rtx_insn *insn ATTRIBUTE_UNUSED,
14881 : int *pnum_clobbers ATTRIBUTE_UNUSED)
14882 : {
14883 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
14884 : rtx x2, x3, x4, x5, x6;
14885 : int res ATTRIBUTE_UNUSED;
14886 : x2 = XEXP (x1, 0);
14887 : operands[0] = x2;
14888 : x3 = XEXP (x1, 1);
14889 : x4 = XVECEXP (x3, 0, 0);
14890 : operands[1] = x4;
14891 : x5 = XVECEXP (x3, 0, 2);
14892 : operands[2] = x5;
14893 : x6 = XVECEXP (x3, 0, 1);
14894 : if (!rtx_equal_p (x6, operands[0]))
14895 : return -1;
14896 : switch (GET_MODE (operands[0]))
14897 : {
14898 : case E_V16SImode:
14899 : if (pattern916 (x3,
14900 : E_HImode,
14901 : E_V16SImode) != 0
14902 : || !
14903 : #line 30381 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14904 : (TARGET_AVX512F))
14905 : return -1;
14906 : return 9977; /* avx512f_compressstorev16si_mask */
14907 :
14908 : case E_V16SFmode:
14909 : if (pattern916 (x3,
14910 : E_HImode,
14911 : E_V16SFmode) != 0
14912 : || !
14913 : #line 30381 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14914 : (TARGET_AVX512F))
14915 : return -1;
14916 : return 9978; /* avx512f_compressstorev16sf_mask */
14917 :
14918 : case E_V8DImode:
14919 : if (pattern916 (x3,
14920 : E_QImode,
14921 : E_V8DImode) != 0
14922 : || !
14923 : #line 30381 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14924 : (TARGET_AVX512F))
14925 : return -1;
14926 : return 9979; /* avx512f_compressstorev8di_mask */
14927 :
14928 : case E_V8DFmode:
14929 : if (pattern916 (x3,
14930 : E_QImode,
14931 : E_V8DFmode) != 0
14932 : || !
14933 : #line 30381 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14934 : (TARGET_AVX512F))
14935 : return -1;
14936 : return 9980; /* avx512f_compressstorev8df_mask */
14937 :
14938 : case E_V8SImode:
14939 : if (pattern916 (x3,
14940 : E_QImode,
14941 : E_V8SImode) != 0
14942 : || !(
14943 : #line 30381 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14944 : (TARGET_AVX512F) &&
14945 : #line 993 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14946 : (TARGET_AVX512VL)))
14947 : return -1;
14948 : return 9981; /* avx512vl_compressstorev8si_mask */
14949 :
14950 : case E_V8SFmode:
14951 : if (pattern916 (x3,
14952 : E_QImode,
14953 : E_V8SFmode) != 0
14954 : || !(
14955 : #line 30381 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14956 : (TARGET_AVX512F) &&
14957 : #line 993 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14958 : (TARGET_AVX512VL)))
14959 : return -1;
14960 : return 9982; /* avx512vl_compressstorev8sf_mask */
14961 :
14962 : case E_V4DImode:
14963 : if (pattern916 (x3,
14964 : E_QImode,
14965 : E_V4DImode) != 0
14966 : || !(
14967 : #line 30381 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14968 : (TARGET_AVX512F) &&
14969 : #line 994 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14970 : (TARGET_AVX512VL)))
14971 : return -1;
14972 : return 9983; /* avx512vl_compressstorev4di_mask */
14973 :
14974 : case E_V4DFmode:
14975 : if (pattern916 (x3,
14976 : E_QImode,
14977 : E_V4DFmode) != 0
14978 : || !(
14979 : #line 30381 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14980 : (TARGET_AVX512F) &&
14981 : #line 994 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14982 : (TARGET_AVX512VL)))
14983 : return -1;
14984 : return 9984; /* avx512vl_compressstorev4df_mask */
14985 :
14986 : case E_V4SImode:
14987 : if (pattern916 (x3,
14988 : E_QImode,
14989 : E_V4SImode) != 0
14990 : || !(
14991 : #line 30381 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14992 : (TARGET_AVX512F) &&
14993 : #line 995 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14994 : (TARGET_AVX512VL)))
14995 : return -1;
14996 : return 9985; /* avx512vl_compressstorev4si_mask */
14997 :
14998 : case E_V4SFmode:
14999 : if (pattern916 (x3,
15000 : E_QImode,
15001 : E_V4SFmode) != 0
15002 : || !(
15003 : #line 30381 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15004 : (TARGET_AVX512F) &&
15005 : #line 995 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15006 : (TARGET_AVX512VL)))
15007 : return -1;
15008 : return 9986; /* avx512vl_compressstorev4sf_mask */
15009 :
15010 : case E_V2DImode:
15011 : if (pattern916 (x3,
15012 : E_QImode,
15013 : E_V2DImode) != 0
15014 : || !(
15015 : #line 30381 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15016 : (TARGET_AVX512F) &&
15017 : #line 996 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15018 : (TARGET_AVX512VL)))
15019 : return -1;
15020 : return 9987; /* avx512vl_compressstorev2di_mask */
15021 :
15022 : case E_V2DFmode:
15023 : if (pattern916 (x3,
15024 : E_QImode,
15025 : E_V2DFmode) != 0
15026 : || !(
15027 : #line 30381 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15028 : (TARGET_AVX512F) &&
15029 : #line 996 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15030 : (TARGET_AVX512VL)))
15031 : return -1;
15032 : return 9988; /* avx512vl_compressstorev2df_mask */
15033 :
15034 : case E_V64QImode:
15035 : if (pattern916 (x3,
15036 : E_DImode,
15037 : E_V64QImode) != 0
15038 : || !
15039 : #line 30395 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15040 : (TARGET_AVX512VBMI2))
15041 : return -1;
15042 : return 9989; /* compressstorev64qi_mask */
15043 :
15044 : case E_V16QImode:
15045 : if (pattern916 (x3,
15046 : E_HImode,
15047 : E_V16QImode) != 0
15048 : || !(
15049 : #line 30395 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15050 : (TARGET_AVX512VBMI2) &&
15051 : #line 328 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15052 : (TARGET_AVX512VL)))
15053 : return -1;
15054 : return 9990; /* compressstorev16qi_mask */
15055 :
15056 : case E_V32QImode:
15057 : if (pattern916 (x3,
15058 : E_SImode,
15059 : E_V32QImode) != 0
15060 : || !(
15061 : #line 30395 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15062 : (TARGET_AVX512VBMI2) &&
15063 : #line 328 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15064 : (TARGET_AVX512VL)))
15065 : return -1;
15066 : return 9991; /* compressstorev32qi_mask */
15067 :
15068 : case E_V32HImode:
15069 : if (pattern916 (x3,
15070 : E_SImode,
15071 : E_V32HImode) != 0
15072 : || !
15073 : #line 30395 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15074 : (TARGET_AVX512VBMI2))
15075 : return -1;
15076 : return 9992; /* compressstorev32hi_mask */
15077 :
15078 : case E_V16HImode:
15079 : if (pattern916 (x3,
15080 : E_HImode,
15081 : E_V16HImode) != 0
15082 : || !(
15083 : #line 30395 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15084 : (TARGET_AVX512VBMI2) &&
15085 : #line 329 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15086 : (TARGET_AVX512VL)))
15087 : return -1;
15088 : return 9993; /* compressstorev16hi_mask */
15089 :
15090 : case E_V8HImode:
15091 : if (pattern916 (x3,
15092 : E_QImode,
15093 : E_V8HImode) != 0
15094 : || !(
15095 : #line 30395 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15096 : (TARGET_AVX512VBMI2) &&
15097 : #line 329 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15098 : (TARGET_AVX512VL)))
15099 : return -1;
15100 : return 9994; /* compressstorev8hi_mask */
15101 :
15102 : default:
15103 : return -1;
15104 : }
15105 : }
15106 :
15107 : int
15108 : recog_263 (rtx x1 ATTRIBUTE_UNUSED,
15109 : rtx_insn *insn ATTRIBUTE_UNUSED,
15110 : int *pnum_clobbers ATTRIBUTE_UNUSED)
15111 : {
15112 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
15113 : rtx x2, x3, x4, x5, x6;
15114 : int res ATTRIBUTE_UNUSED;
15115 : x2 = XEXP (x1, 0);
15116 : operands[0] = x2;
15117 : x3 = XEXP (x1, 1);
15118 : x4 = XVECEXP (x3, 0, 0);
15119 : operands[1] = x4;
15120 : x5 = XVECEXP (x3, 0, 1);
15121 : operands[2] = x5;
15122 : x6 = XVECEXP (x3, 0, 2);
15123 : operands[3] = x6;
15124 : if (!const_int_operand (operands[3], E_SImode))
15125 : return -1;
15126 : switch (GET_MODE (operands[0]))
15127 : {
15128 : case E_V16QImode:
15129 : if (pattern64 (x3,
15130 : E_V16QImode) != 0
15131 : || !
15132 : #line 27758 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15133 : (TARGET_XOP))
15134 : return -1;
15135 : return 9127; /* xop_pcom_tfv16qi3 */
15136 :
15137 : case E_V8HImode:
15138 : if (pattern64 (x3,
15139 : E_V8HImode) != 0
15140 : || !
15141 : #line 27758 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15142 : (TARGET_XOP))
15143 : return -1;
15144 : return 9128; /* xop_pcom_tfv8hi3 */
15145 :
15146 : case E_V4SImode:
15147 : if (pattern64 (x3,
15148 : E_V4SImode) != 0
15149 : || !
15150 : #line 27758 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15151 : (TARGET_XOP))
15152 : return -1;
15153 : return 9129; /* xop_pcom_tfv4si3 */
15154 :
15155 : case E_V2DImode:
15156 : if (pattern64 (x3,
15157 : E_V2DImode) != 0
15158 : || !
15159 : #line 27758 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15160 : (TARGET_XOP))
15161 : return -1;
15162 : return 9130; /* xop_pcom_tfv2di3 */
15163 :
15164 : default:
15165 : return -1;
15166 : }
15167 : }
15168 :
15169 : int
15170 : recog_266 (rtx x1 ATTRIBUTE_UNUSED,
15171 : rtx_insn *insn ATTRIBUTE_UNUSED,
15172 : int *pnum_clobbers ATTRIBUTE_UNUSED)
15173 : {
15174 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
15175 : rtx x2, x3, x4, x5;
15176 : int res ATTRIBUTE_UNUSED;
15177 : x2 = XEXP (x1, 0);
15178 : operands[0] = x2;
15179 : x3 = XEXP (x1, 1);
15180 : x4 = XVECEXP (x3, 0, 0);
15181 : operands[1] = x4;
15182 : x5 = XVECEXP (x3, 0, 1);
15183 : operands[2] = x5;
15184 : switch (pattern677 (x3))
15185 : {
15186 : case 0:
15187 : if (
15188 : #line 7507 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15189 : (TARGET_AVX512FP16 && 1 && 1))
15190 : return 4361; /* fma_fmaddc_v32hf */
15191 : break;
15192 :
15193 : case 1:
15194 : if ((
15195 : #line 7507 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15196 : (TARGET_AVX512FP16 && 1 && 1) &&
15197 : #line 545 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15198 : (TARGET_AVX512VL)))
15199 : return 4369; /* fma_fmaddc_v16hf */
15200 : break;
15201 :
15202 : case 2:
15203 : if ((
15204 : #line 7507 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15205 : (TARGET_AVX512FP16 && 1 && 1) &&
15206 : #line 545 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15207 : (TARGET_AVX512VL)))
15208 : return 4373; /* fma_fmaddc_v8hf */
15209 : break;
15210 :
15211 : default:
15212 : break;
15213 : }
15214 : if (GET_CODE (x5) != SUBREG
15215 : || maybe_ne (SUBREG_BYTE (x5), 0))
15216 : return -1;
15217 : switch (pattern602 (x3))
15218 : {
15219 : case 0:
15220 : if (!
15221 : #line 7586 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15222 : (TARGET_AVX512FP16 && ix86_pre_reload_split ()))
15223 : return -1;
15224 : return 4395; /* fma_v32hf_fmaddc_bcst */
15225 :
15226 : case 1:
15227 : if (!(
15228 : #line 7586 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15229 : (TARGET_AVX512FP16 && ix86_pre_reload_split ()) &&
15230 : #line 545 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15231 : (TARGET_AVX512VL)))
15232 : return -1;
15233 : return 4396; /* fma_v16hf_fmaddc_bcst */
15234 :
15235 : case 2:
15236 : if (!(
15237 : #line 7586 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15238 : (TARGET_AVX512FP16 && ix86_pre_reload_split ()) &&
15239 : #line 545 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15240 : (TARGET_AVX512VL)))
15241 : return -1;
15242 : return 4397; /* fma_v8hf_fmaddc_bcst */
15243 :
15244 : default:
15245 : return -1;
15246 : }
15247 : }
15248 :
15249 : int
15250 : recog_272 (rtx x1 ATTRIBUTE_UNUSED,
15251 : rtx_insn *insn ATTRIBUTE_UNUSED,
15252 : int *pnum_clobbers ATTRIBUTE_UNUSED)
15253 : {
15254 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
15255 : rtx x2, x3, x4;
15256 : int res ATTRIBUTE_UNUSED;
15257 : x2 = XEXP (x1, 1);
15258 : x3 = XEXP (x2, 0);
15259 : operands[1] = x3;
15260 : x4 = XEXP (x2, 1);
15261 : switch (GET_CODE (x4))
15262 : {
15263 : case REG:
15264 : case SUBREG:
15265 : case MEM:
15266 : switch (GET_MODE (operands[0]))
15267 : {
15268 : case E_V4SFmode:
15269 : if (pattern799 (x2,
15270 : E_V2SFmode,
15271 : E_V4SFmode) == 0
15272 : &&
15273 : #line 12161 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15274 : (TARGET_SSE))
15275 : return 5301; /* *vec_concatv4sf */
15276 : break;
15277 :
15278 : case E_V8HFmode:
15279 : if (pattern799 (x2,
15280 : E_V4HFmode,
15281 : E_V8HFmode) == 0
15282 : &&
15283 : #line 12161 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15284 : (TARGET_SSE))
15285 : return 5302; /* *vec_concatv8hf */
15286 : break;
15287 :
15288 : case E_V8BFmode:
15289 : if (pattern799 (x2,
15290 : E_V4BFmode,
15291 : E_V8BFmode) == 0
15292 : &&
15293 : #line 12161 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15294 : (TARGET_SSE))
15295 : return 5303; /* *vec_concatv8bf */
15296 : break;
15297 :
15298 : case E_V16QImode:
15299 : if (pattern799 (x2,
15300 : E_V8QImode,
15301 : E_V16QImode) == 0
15302 : &&
15303 : #line 21912 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15304 : (TARGET_SSE))
15305 : return 8525; /* *vec_concatv16qi */
15306 : break;
15307 :
15308 : case E_V8HImode:
15309 : if (pattern799 (x2,
15310 : E_V4HImode,
15311 : E_V8HImode) == 0
15312 : &&
15313 : #line 21912 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15314 : (TARGET_SSE))
15315 : return 8526; /* *vec_concatv8hi */
15316 : break;
15317 :
15318 : case E_V4SImode:
15319 : if (pattern799 (x2,
15320 : E_V2SImode,
15321 : E_V4SImode) == 0
15322 : &&
15323 : #line 21912 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15324 : (TARGET_SSE))
15325 : return 8527; /* *vec_concatv4si */
15326 : break;
15327 :
15328 : case E_V2DImode:
15329 : if (pattern799 (x2,
15330 : E_DImode,
15331 : E_V2DImode) == 0
15332 : &&
15333 : #line 22000 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15334 : (TARGET_SSE))
15335 : return 8533; /* vec_concatv2di */
15336 : break;
15337 :
15338 : case E_V32QImode:
15339 : if (register_operand (operands[0], E_V32QImode)
15340 : && GET_MODE (x2) == E_V32QImode
15341 : && rtx_equal_p (x4, operands[1]))
15342 : {
15343 : if (memory_operand (operands[1], E_V16QImode)
15344 : &&
15345 : #line 28575 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15346 : (TARGET_AVX2))
15347 : return 9358; /* avx2_vbroadcasti128_v32qi */
15348 : if (nonimmediate_operand (operands[1], E_V16QImode)
15349 : &&
15350 : #line 28690 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15351 : (TARGET_AVX))
15352 : return 9377; /* avx_vbroadcastf128_v32qi */
15353 : }
15354 : break;
15355 :
15356 : case E_V16HImode:
15357 : if (register_operand (operands[0], E_V16HImode)
15358 : && GET_MODE (x2) == E_V16HImode
15359 : && rtx_equal_p (x4, operands[1]))
15360 : {
15361 : if (memory_operand (operands[1], E_V8HImode)
15362 : &&
15363 : #line 28575 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15364 : (TARGET_AVX2))
15365 : return 9359; /* avx2_vbroadcasti128_v16hi */
15366 : if (nonimmediate_operand (operands[1], E_V8HImode)
15367 : &&
15368 : #line 28690 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15369 : (TARGET_AVX))
15370 : return 9378; /* avx_vbroadcastf128_v16hi */
15371 : }
15372 : break;
15373 :
15374 : case E_V8SImode:
15375 : if (register_operand (operands[0], E_V8SImode)
15376 : && GET_MODE (x2) == E_V8SImode
15377 : && rtx_equal_p (x4, operands[1]))
15378 : {
15379 : if (memory_operand (operands[1], E_V4SImode)
15380 : &&
15381 : #line 28575 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15382 : (TARGET_AVX2))
15383 : return 9360; /* avx2_vbroadcasti128_v8si */
15384 : if (nonimmediate_operand (operands[1], E_V4SImode)
15385 : &&
15386 : #line 28690 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15387 : (TARGET_AVX))
15388 : return 9379; /* avx_vbroadcastf128_v8si */
15389 : }
15390 : break;
15391 :
15392 : case E_V4DImode:
15393 : if (register_operand (operands[0], E_V4DImode)
15394 : && GET_MODE (x2) == E_V4DImode
15395 : && memory_operand (operands[1], E_V2DImode)
15396 : && rtx_equal_p (x4, operands[1])
15397 : &&
15398 : #line 28575 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15399 : (TARGET_AVX2))
15400 : return 9361; /* avx2_vbroadcasti128_v4di */
15401 : break;
15402 :
15403 : case E_V8SFmode:
15404 : if (pattern800 (x2,
15405 : E_V4SFmode,
15406 : E_V8SFmode) == 0
15407 : &&
15408 : #line 28690 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15409 : (TARGET_AVX))
15410 : return 9381; /* avx_vbroadcastf128_v8sf */
15411 : break;
15412 :
15413 : case E_V4DFmode:
15414 : if (pattern800 (x2,
15415 : E_V2DFmode,
15416 : E_V4DFmode) == 0
15417 : &&
15418 : #line 28690 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15419 : (TARGET_AVX))
15420 : return 9382; /* avx_vbroadcastf128_v4df */
15421 : break;
15422 :
15423 : case E_V16HFmode:
15424 : if (pattern800 (x2,
15425 : E_V8HFmode,
15426 : E_V16HFmode) == 0
15427 : &&
15428 : #line 28690 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15429 : (TARGET_AVX))
15430 : return 9383; /* avx_vbroadcastf128_v16hf */
15431 : break;
15432 :
15433 : case E_V16BFmode:
15434 : if (pattern800 (x2,
15435 : E_V8BFmode,
15436 : E_V16BFmode) == 0
15437 : &&
15438 : #line 28690 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15439 : (TARGET_AVX))
15440 : return 9384; /* avx_vbroadcastf128_v16bf */
15441 : break;
15442 :
15443 : default:
15444 : break;
15445 : }
15446 : break;
15447 :
15448 : case CONST_INT:
15449 : case CONST_DOUBLE:
15450 : case CONST_VECTOR:
15451 : operands[2] = x4;
15452 : switch (GET_MODE (operands[0]))
15453 : {
15454 : case E_V4SFmode:
15455 : if (pattern923 (x2,
15456 : E_V2SFmode,
15457 : E_V4SFmode) == 0
15458 : &&
15459 : #line 12177 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15460 : (TARGET_SSE2))
15461 : return 5304; /* *vec_concatv4sf_0 */
15462 : break;
15463 :
15464 : case E_V8HFmode:
15465 : if (pattern923 (x2,
15466 : E_V4HFmode,
15467 : E_V8HFmode) == 0
15468 : &&
15469 : #line 12177 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15470 : (TARGET_SSE2))
15471 : return 5305; /* *vec_concatv8hf_0 */
15472 : break;
15473 :
15474 : case E_V8BFmode:
15475 : if (pattern923 (x2,
15476 : E_V4BFmode,
15477 : E_V8BFmode) == 0
15478 : &&
15479 : #line 12177 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15480 : (TARGET_SSE2))
15481 : return 5306; /* *vec_concatv8bf_0 */
15482 : break;
15483 :
15484 : case E_V16QImode:
15485 : if (pattern923 (x2,
15486 : E_V8QImode,
15487 : E_V16QImode) == 0
15488 : &&
15489 : #line 21983 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15490 : (TARGET_SSE2))
15491 : return 8530; /* *vec_concatv16qi_0 */
15492 : break;
15493 :
15494 : case E_V8HImode:
15495 : if (pattern923 (x2,
15496 : E_V4HImode,
15497 : E_V8HImode) == 0
15498 : &&
15499 : #line 21983 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15500 : (TARGET_SSE2))
15501 : return 8531; /* *vec_concatv8hi_0 */
15502 : break;
15503 :
15504 : case E_V4SImode:
15505 : if (pattern923 (x2,
15506 : E_V2SImode,
15507 : E_V4SImode) == 0
15508 : &&
15509 : #line 21983 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15510 : (TARGET_SSE2))
15511 : return 8532; /* *vec_concatv4si_0 */
15512 : break;
15513 :
15514 : case E_V2DImode:
15515 : if (pattern923 (x2,
15516 : E_DImode,
15517 : E_V2DImode) == 0
15518 : &&
15519 : #line 22074 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15520 : (TARGET_SSE2))
15521 : return 8534; /* *vec_concatv2di_0 */
15522 : break;
15523 :
15524 : default:
15525 : break;
15526 : }
15527 : break;
15528 :
15529 : default:
15530 : break;
15531 : }
15532 : operands[2] = x4;
15533 : switch (GET_MODE (operands[0]))
15534 : {
15535 : case E_V2DFmode:
15536 : if (pattern801 (x2,
15537 : E_DFmode,
15538 : E_V2DFmode) != 0
15539 : || !
15540 : #line 15234 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15541 : (TARGET_SSE && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
15542 : return -1;
15543 : return 7256; /* vec_concatv2df */
15544 :
15545 : case E_V32QImode:
15546 : if (pattern801 (x2,
15547 : E_V16QImode,
15548 : E_V32QImode) != 0
15549 : || !
15550 : #line 29647 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15551 : (TARGET_AVX
15552 : && (operands[2] == CONST0_RTX (V16QImode)
15553 : || !MEM_P (operands[1]))))
15554 : return -1;
15555 : return 9680; /* avx_vec_concatv32qi */
15556 :
15557 : case E_V16HImode:
15558 : if (pattern801 (x2,
15559 : E_V8HImode,
15560 : E_V16HImode) != 0
15561 : || !
15562 : #line 29647 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15563 : (TARGET_AVX
15564 : && (operands[2] == CONST0_RTX (V8HImode)
15565 : || !MEM_P (operands[1]))))
15566 : return -1;
15567 : return 9681; /* avx_vec_concatv16hi */
15568 :
15569 : case E_V16HFmode:
15570 : if (pattern801 (x2,
15571 : E_V8HFmode,
15572 : E_V16HFmode) != 0
15573 : || !
15574 : #line 29647 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15575 : (TARGET_AVX
15576 : && (operands[2] == CONST0_RTX (V8HFmode)
15577 : || !MEM_P (operands[1]))))
15578 : return -1;
15579 : return 9682; /* avx_vec_concatv16hf */
15580 :
15581 : case E_V16BFmode:
15582 : if (pattern801 (x2,
15583 : E_V8BFmode,
15584 : E_V16BFmode) != 0
15585 : || !
15586 : #line 29647 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15587 : (TARGET_AVX
15588 : && (operands[2] == CONST0_RTX (V8BFmode)
15589 : || !MEM_P (operands[1]))))
15590 : return -1;
15591 : return 9683; /* avx_vec_concatv16bf */
15592 :
15593 : case E_V8SImode:
15594 : if (pattern801 (x2,
15595 : E_V4SImode,
15596 : E_V8SImode) != 0
15597 : || !
15598 : #line 29647 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15599 : (TARGET_AVX
15600 : && (operands[2] == CONST0_RTX (V4SImode)
15601 : || !MEM_P (operands[1]))))
15602 : return -1;
15603 : return 9684; /* avx_vec_concatv8si */
15604 :
15605 : case E_V8SFmode:
15606 : if (pattern801 (x2,
15607 : E_V4SFmode,
15608 : E_V8SFmode) != 0
15609 : || !
15610 : #line 29647 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15611 : (TARGET_AVX
15612 : && (operands[2] == CONST0_RTX (V4SFmode)
15613 : || !MEM_P (operands[1]))))
15614 : return -1;
15615 : return 9686; /* avx_vec_concatv8sf */
15616 :
15617 : case E_V4DFmode:
15618 : if (pattern801 (x2,
15619 : E_V2DFmode,
15620 : E_V4DFmode) != 0
15621 : || !
15622 : #line 29647 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15623 : (TARGET_AVX
15624 : && (operands[2] == CONST0_RTX (V2DFmode)
15625 : || !MEM_P (operands[1]))))
15626 : return -1;
15627 : return 9687; /* avx_vec_concatv4df */
15628 :
15629 : case E_V64QImode:
15630 : if (pattern801 (x2,
15631 : E_V32QImode,
15632 : E_V64QImode) != 0
15633 : || !(
15634 : #line 29647 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15635 : (TARGET_AVX
15636 : && (operands[2] == CONST0_RTX (V32QImode)
15637 : || !MEM_P (operands[1]))) &&
15638 : #line 375 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15639 : (TARGET_AVX512F)))
15640 : return -1;
15641 : return 9688; /* avx_vec_concatv64qi */
15642 :
15643 : case E_V32HImode:
15644 : if (pattern801 (x2,
15645 : E_V16HImode,
15646 : E_V32HImode) != 0
15647 : || !(
15648 : #line 29647 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15649 : (TARGET_AVX
15650 : && (operands[2] == CONST0_RTX (V16HImode)
15651 : || !MEM_P (operands[1]))) &&
15652 : #line 375 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15653 : (TARGET_AVX512F)))
15654 : return -1;
15655 : return 9689; /* avx_vec_concatv32hi */
15656 :
15657 : case E_V32HFmode:
15658 : if (pattern801 (x2,
15659 : E_V16HFmode,
15660 : E_V32HFmode) != 0
15661 : || !(
15662 : #line 29647 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15663 : (TARGET_AVX
15664 : && (operands[2] == CONST0_RTX (V16HFmode)
15665 : || !MEM_P (operands[1]))) &&
15666 : #line 376 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15667 : (TARGET_AVX512F)))
15668 : return -1;
15669 : return 9690; /* avx_vec_concatv32hf */
15670 :
15671 : case E_V32BFmode:
15672 : if (pattern801 (x2,
15673 : E_V16BFmode,
15674 : E_V32BFmode) != 0
15675 : || !(
15676 : #line 29647 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15677 : (TARGET_AVX
15678 : && (operands[2] == CONST0_RTX (V16BFmode)
15679 : || !MEM_P (operands[1]))) &&
15680 : #line 376 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15681 : (TARGET_AVX512F)))
15682 : return -1;
15683 : return 9691; /* avx_vec_concatv32bf */
15684 :
15685 : case E_V16SImode:
15686 : if (pattern801 (x2,
15687 : E_V8SImode,
15688 : E_V16SImode) != 0
15689 : || !(
15690 : #line 29647 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15691 : (TARGET_AVX
15692 : && (operands[2] == CONST0_RTX (V8SImode)
15693 : || !MEM_P (operands[1]))) &&
15694 : #line 377 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15695 : (TARGET_AVX512F)))
15696 : return -1;
15697 : return 9692; /* avx_vec_concatv16si */
15698 :
15699 : case E_V8DImode:
15700 : if (pattern801 (x2,
15701 : E_V4DImode,
15702 : E_V8DImode) != 0
15703 : || !(
15704 : #line 29647 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15705 : (TARGET_AVX
15706 : && (operands[2] == CONST0_RTX (V4DImode)
15707 : || !MEM_P (operands[1]))) &&
15708 : #line 377 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15709 : (TARGET_AVX512F)))
15710 : return -1;
15711 : return 9693; /* avx_vec_concatv8di */
15712 :
15713 : case E_V16SFmode:
15714 : if (pattern801 (x2,
15715 : E_V8SFmode,
15716 : E_V16SFmode) != 0
15717 : || !(
15718 : #line 29647 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15719 : (TARGET_AVX
15720 : && (operands[2] == CONST0_RTX (V8SFmode)
15721 : || !MEM_P (operands[1]))) &&
15722 : #line 378 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15723 : (TARGET_AVX512F)))
15724 : return -1;
15725 : return 9694; /* avx_vec_concatv16sf */
15726 :
15727 : case E_V8DFmode:
15728 : if (pattern801 (x2,
15729 : E_V4DFmode,
15730 : E_V8DFmode) != 0
15731 : || !(
15732 : #line 29647 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15733 : (TARGET_AVX
15734 : && (operands[2] == CONST0_RTX (V4DFmode)
15735 : || !MEM_P (operands[1]))) &&
15736 : #line 378 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15737 : (TARGET_AVX512F)))
15738 : return -1;
15739 : return 9695; /* avx_vec_concatv8df */
15740 :
15741 : default:
15742 : return -1;
15743 : }
15744 : }
15745 :
15746 : int
15747 : recog_280 (rtx x1 ATTRIBUTE_UNUSED,
15748 : rtx_insn *insn ATTRIBUTE_UNUSED,
15749 : int *pnum_clobbers ATTRIBUTE_UNUSED)
15750 : {
15751 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
15752 : rtx x2, x3, x4, x5, x6, x7, x8;
15753 : int res ATTRIBUTE_UNUSED;
15754 : x2 = XEXP (x1, 1);
15755 : x3 = XEXP (x2, 0);
15756 : x4 = XEXP (x3, 1);
15757 : operands[2] = x4;
15758 : x5 = XEXP (x2, 1);
15759 : x6 = XVECEXP (x5, 0, 1);
15760 : operands[4] = x6;
15761 : x7 = XVECEXP (x5, 0, 2);
15762 : operands[5] = x7;
15763 : x8 = XVECEXP (x5, 0, 3);
15764 : operands[6] = x8;
15765 : switch (GET_MODE (operands[0]))
15766 : {
15767 : case E_V4SImode:
15768 : if (pattern1531 (x2,
15769 : E_V4SImode,
15770 : E_V8SImode) != 0
15771 : || !
15772 : #line 11885 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15773 : (TARGET_SSE))
15774 : return -1;
15775 : return 5286; /* sse_shufps_v4si */
15776 :
15777 : case E_V4SFmode:
15778 : if (pattern1531 (x2,
15779 : E_V4SFmode,
15780 : E_V8SFmode) != 0
15781 : || !
15782 : #line 11885 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15783 : (TARGET_SSE))
15784 : return -1;
15785 : return 5287; /* sse_shufps_v4sf */
15786 :
15787 : case E_V4DFmode:
15788 : if (pattern1425 (x2,
15789 : E_V4DFmode,
15790 : E_V8DFmode) != 0)
15791 : return -1;
15792 : if (const_0_to_1_operand (operands[3], E_VOIDmode)
15793 : && const_4_to_5_operand (operands[4], E_VOIDmode)
15794 : && const_2_to_3_operand (operands[5], E_VOIDmode)
15795 : && const_6_to_7_operand (operands[6], E_VOIDmode)
15796 : &&
15797 : #line 14723 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15798 : (TARGET_AVX && 1))
15799 : return 7229; /* avx_shufpd256_1 */
15800 : if (!const_0_to_3_operand (operands[3], E_VOIDmode)
15801 : || !const_0_to_3_operand (operands[4], E_VOIDmode)
15802 : || !const_4_to_7_operand (operands[5], E_VOIDmode)
15803 : || !const_4_to_7_operand (operands[6], E_VOIDmode)
15804 : || !
15805 : #line 20517 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15806 : (TARGET_AVX512VL
15807 : && (INTVAL (operands[3]) & 1) == 0
15808 : && INTVAL (operands[3]) == INTVAL (operands[4]) - 1
15809 : && (INTVAL (operands[5]) & 1) == 0
15810 : && INTVAL (operands[5]) == INTVAL (operands[6]) - 1))
15811 : return -1;
15812 : return 8459; /* *avx512dq_shuf_f64x2_1 */
15813 :
15814 : case E_V4DImode:
15815 : if (pattern1425 (x2,
15816 : E_V4DImode,
15817 : E_V8DImode) != 0
15818 : || pattern1530 () != 0
15819 : || !
15820 : #line 20517 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15821 : (TARGET_AVX512VL
15822 : && (INTVAL (operands[3]) & 1) == 0
15823 : && INTVAL (operands[3]) == INTVAL (operands[4]) - 1
15824 : && (INTVAL (operands[5]) & 1) == 0
15825 : && INTVAL (operands[5]) == INTVAL (operands[6]) - 1))
15826 : return -1;
15827 : return 8457; /* *avx512dq_shuf_i64x2_1 */
15828 :
15829 : default:
15830 : return -1;
15831 : }
15832 : }
15833 :
15834 : int
15835 : recog_282 (rtx x1 ATTRIBUTE_UNUSED,
15836 : rtx_insn *insn ATTRIBUTE_UNUSED,
15837 : int *pnum_clobbers ATTRIBUTE_UNUSED)
15838 : {
15839 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
15840 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
15841 : rtx x10, x11, x12, x13;
15842 : int res ATTRIBUTE_UNUSED;
15843 : x2 = XEXP (x1, 1);
15844 : x3 = XEXP (x2, 1);
15845 : if (pattern930 (x3) != 0)
15846 : return -1;
15847 : x4 = XVECEXP (x3, 0, 0);
15848 : switch (XWINT (x4, 0))
15849 : {
15850 : case 0L:
15851 : x5 = XVECEXP (x3, 0, 1);
15852 : switch (XWINT (x5, 0))
15853 : {
15854 : case 1L:
15855 : x6 = XVECEXP (x3, 0, 2);
15856 : if (XWINT (x6, 0) != 2L)
15857 : return -1;
15858 : x7 = XVECEXP (x3, 0, 3);
15859 : if (XWINT (x7, 0) != 3L)
15860 : return -1;
15861 : x8 = XVECEXP (x3, 0, 4);
15862 : if (XWINT (x8, 0) != 8L)
15863 : return -1;
15864 : x9 = XVECEXP (x3, 0, 5);
15865 : if (XWINT (x9, 0) != 9L)
15866 : return -1;
15867 : x10 = XVECEXP (x3, 0, 6);
15868 : if (XWINT (x10, 0) != 10L)
15869 : return -1;
15870 : x11 = XVECEXP (x3, 0, 7);
15871 : if (XWINT (x11, 0) != 11L)
15872 : return -1;
15873 : x12 = XEXP (x2, 0);
15874 : x13 = XEXP (x12, 1);
15875 : operands[2] = x13;
15876 : switch (GET_MODE (operands[0]))
15877 : {
15878 : case E_V8HImode:
15879 : if (pattern1493 (x2,
15880 : E_V8HImode,
15881 : E_V16HImode) != 0
15882 : || !
15883 : #line 11456 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15884 : (TARGET_SSE && ix86_binary_operator_ok (UNKNOWN, V8HImode, operands)))
15885 : return -1;
15886 : return 5256; /* sse_movlhps_v8hi */
15887 :
15888 : case E_V8HFmode:
15889 : if (pattern1493 (x2,
15890 : E_V8HFmode,
15891 : E_V16HFmode) != 0
15892 : || !
15893 : #line 11456 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15894 : (TARGET_SSE && ix86_binary_operator_ok (UNKNOWN, V8HFmode, operands)))
15895 : return -1;
15896 : return 5257; /* sse_movlhps_v8hf */
15897 :
15898 : case E_V8BFmode:
15899 : if (pattern1493 (x2,
15900 : E_V8BFmode,
15901 : E_V16BFmode) != 0
15902 : || !
15903 : #line 11456 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15904 : (TARGET_SSE && ix86_binary_operator_ok (UNKNOWN, V8BFmode, operands)))
15905 : return -1;
15906 : return 5258; /* sse_movlhps_v8bf */
15907 :
15908 : default:
15909 : return -1;
15910 : }
15911 :
15912 : case 8L:
15913 : x6 = XVECEXP (x3, 0, 2);
15914 : switch (XWINT (x6, 0))
15915 : {
15916 : case 1L:
15917 : x7 = XVECEXP (x3, 0, 3);
15918 : if (XWINT (x7, 0) != 9L)
15919 : return -1;
15920 : x12 = XEXP (x2, 0);
15921 : x13 = XEXP (x12, 1);
15922 : operands[2] = x13;
15923 : x8 = XVECEXP (x3, 0, 4);
15924 : switch (XWINT (x8, 0))
15925 : {
15926 : case 4L:
15927 : x9 = XVECEXP (x3, 0, 5);
15928 : if (XWINT (x9, 0) != 12L)
15929 : return -1;
15930 : x10 = XVECEXP (x3, 0, 6);
15931 : if (XWINT (x10, 0) != 5L)
15932 : return -1;
15933 : x11 = XVECEXP (x3, 0, 7);
15934 : if (XWINT (x11, 0) != 13L)
15935 : return -1;
15936 : switch (GET_MODE (operands[0]))
15937 : {
15938 : case E_V8SFmode:
15939 : if (pattern1425 (x2,
15940 : E_V8SFmode,
15941 : E_V16SFmode) != 0
15942 : || !
15943 : #line 11586 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15944 : (TARGET_AVX && 1))
15945 : return -1;
15946 : return 5267; /* avx_unpcklps256 */
15947 :
15948 : case E_V8SImode:
15949 : if (pattern1425 (x2,
15950 : E_V8SImode,
15951 : E_V16SImode) != 0
15952 : || !
15953 : #line 20117 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15954 : (TARGET_AVX2 && 1))
15955 : return -1;
15956 : return 8417; /* avx2_interleave_lowv8si */
15957 :
15958 : default:
15959 : return -1;
15960 : }
15961 :
15962 : case 2L:
15963 : x9 = XVECEXP (x3, 0, 5);
15964 : if (XWINT (x9, 0) != 10L)
15965 : return -1;
15966 : x10 = XVECEXP (x3, 0, 6);
15967 : if (XWINT (x10, 0) != 3L)
15968 : return -1;
15969 : x11 = XVECEXP (x3, 0, 7);
15970 : if (XWINT (x11, 0) != 11L)
15971 : return -1;
15972 : switch (GET_MODE (operands[0]))
15973 : {
15974 : case E_V8HImode:
15975 : if (pattern1494 (x2,
15976 : E_V8HImode,
15977 : E_V16HImode) != 0
15978 : || !
15979 : #line 20042 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15980 : (TARGET_SSE2 && 1 && 1))
15981 : return -1;
15982 : return 8405; /* vec_interleave_lowv8hi */
15983 :
15984 : case E_V8HFmode:
15985 : if (pattern1494 (x2,
15986 : E_V8HFmode,
15987 : E_V16HFmode) != 0
15988 : || !
15989 : #line 20042 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15990 : (TARGET_SSE2 && 1 && 1))
15991 : return -1;
15992 : return 8407; /* vec_interleave_lowv8hf */
15993 :
15994 : case E_V8BFmode:
15995 : if (pattern1494 (x2,
15996 : E_V8BFmode,
15997 : E_V16BFmode) != 0
15998 : || !
15999 : #line 20042 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16000 : (TARGET_SSE2 && 1 && 1))
16001 : return -1;
16002 : return 8409; /* vec_interleave_lowv8bf */
16003 :
16004 : default:
16005 : return -1;
16006 : }
16007 :
16008 : default:
16009 : return -1;
16010 : }
16011 :
16012 : case 2L:
16013 : x7 = XVECEXP (x3, 0, 3);
16014 : if (XWINT (x7, 0) != 10L)
16015 : return -1;
16016 : x8 = XVECEXP (x3, 0, 4);
16017 : if (XWINT (x8, 0) != 4L)
16018 : return -1;
16019 : x9 = XVECEXP (x3, 0, 5);
16020 : if (XWINT (x9, 0) != 12L)
16021 : return -1;
16022 : x10 = XVECEXP (x3, 0, 6);
16023 : if (XWINT (x10, 0) != 6L)
16024 : return -1;
16025 : x11 = XVECEXP (x3, 0, 7);
16026 : if (XWINT (x11, 0) != 14L)
16027 : return -1;
16028 : switch (GET_MODE (operands[0]))
16029 : {
16030 : case E_V8DFmode:
16031 : if (!register_operand (operands[0], E_V8DFmode)
16032 : || GET_MODE (x2) != E_V8DFmode)
16033 : return -1;
16034 : x12 = XEXP (x2, 0);
16035 : if (GET_MODE (x12) != E_V16DFmode)
16036 : return -1;
16037 : if (nonimmediate_operand (operands[1], E_V8DFmode))
16038 : {
16039 : x13 = XEXP (x12, 1);
16040 : if (rtx_equal_p (x13, operands[1])
16041 : &&
16042 : #line 13763 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16043 : (TARGET_AVX512F))
16044 : return 5419; /* avx512f_movddup512 */
16045 : }
16046 : if (!register_operand (operands[1], E_V8DFmode))
16047 : return -1;
16048 : x13 = XEXP (x12, 1);
16049 : operands[2] = x13;
16050 : if (!nonimmediate_operand (operands[2], E_V8DFmode)
16051 : || !
16052 : #line 13779 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16053 : (TARGET_AVX512F))
16054 : return -1;
16055 : return 5421; /* avx512f_unpcklpd512 */
16056 :
16057 : case E_V8DImode:
16058 : if (pattern1631 (x2,
16059 : E_V8DImode,
16060 : E_V16DImode) != 0
16061 : || !
16062 : #line 14856 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16063 : (TARGET_AVX512F))
16064 : return -1;
16065 : return 7240; /* *avx512f_interleave_lowv8di */
16066 :
16067 : default:
16068 : return -1;
16069 : }
16070 :
16071 : default:
16072 : return -1;
16073 : }
16074 :
16075 : case 0L:
16076 : if (pattern1677 (x3) != 0
16077 : || pattern1813 (x2,
16078 : E_V8SFmode,
16079 : E_V16SFmode) != 0
16080 : || !
16081 : #line 11725 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16082 : (TARGET_AVX && 1))
16083 : return -1;
16084 : return 5277; /* avx_movsldup256 */
16085 :
16086 : default:
16087 : return -1;
16088 : }
16089 :
16090 : case 2L:
16091 : x5 = XVECEXP (x3, 0, 1);
16092 : if (XWINT (x5, 0) != 10L)
16093 : return -1;
16094 : x6 = XVECEXP (x3, 0, 2);
16095 : if (XWINT (x6, 0) != 3L)
16096 : return -1;
16097 : x7 = XVECEXP (x3, 0, 3);
16098 : if (XWINT (x7, 0) != 11L
16099 : || pattern1727 (x2) != 0)
16100 : return -1;
16101 : switch (GET_MODE (operands[0]))
16102 : {
16103 : case E_V8SFmode:
16104 : if (pattern1425 (x2,
16105 : E_V8SFmode,
16106 : E_V16SFmode) != 0
16107 : || !
16108 : #line 11498 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16109 : (TARGET_AVX && 1))
16110 : return -1;
16111 : return 5261; /* avx_unpckhps256 */
16112 :
16113 : case E_V8SImode:
16114 : if (pattern1425 (x2,
16115 : E_V8SImode,
16116 : E_V16SImode) != 0
16117 : || !
16118 : #line 20062 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16119 : (TARGET_AVX2 && 1))
16120 : return -1;
16121 : return 8411; /* avx2_interleave_highv8si */
16122 :
16123 : default:
16124 : return -1;
16125 : }
16126 :
16127 : case 1L:
16128 : x6 = XVECEXP (x3, 0, 2);
16129 : if (XWINT (x6, 0) != 3L)
16130 : return -1;
16131 : x8 = XVECEXP (x3, 0, 4);
16132 : if (XWINT (x8, 0) != 5L)
16133 : return -1;
16134 : x10 = XVECEXP (x3, 0, 6);
16135 : if (XWINT (x10, 0) != 7L)
16136 : return -1;
16137 : x5 = XVECEXP (x3, 0, 1);
16138 : switch (XWINT (x5, 0))
16139 : {
16140 : case 1L:
16141 : x7 = XVECEXP (x3, 0, 3);
16142 : if (XWINT (x7, 0) != 3L)
16143 : return -1;
16144 : x9 = XVECEXP (x3, 0, 5);
16145 : if (XWINT (x9, 0) != 5L)
16146 : return -1;
16147 : x11 = XVECEXP (x3, 0, 7);
16148 : if (XWINT (x11, 0) != 7L
16149 : || pattern1813 (x2,
16150 : E_V8SFmode,
16151 : E_V16SFmode) != 0
16152 : || !
16153 : #line 11672 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16154 : (TARGET_AVX && 1))
16155 : return -1;
16156 : return 5271; /* avx_movshdup256 */
16157 :
16158 : case 9L:
16159 : x7 = XVECEXP (x3, 0, 3);
16160 : if (XWINT (x7, 0) != 11L)
16161 : return -1;
16162 : x9 = XVECEXP (x3, 0, 5);
16163 : if (XWINT (x9, 0) != 13L)
16164 : return -1;
16165 : x11 = XVECEXP (x3, 0, 7);
16166 : if (XWINT (x11, 0) != 15L)
16167 : return -1;
16168 : x12 = XEXP (x2, 0);
16169 : x13 = XEXP (x12, 1);
16170 : operands[2] = x13;
16171 : switch (GET_MODE (operands[0]))
16172 : {
16173 : case E_V8DFmode:
16174 : if (pattern1425 (x2,
16175 : E_V8DFmode,
16176 : E_V16DFmode) != 0
16177 : || !
16178 : #line 13649 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16179 : (TARGET_AVX512F))
16180 : return -1;
16181 : return 5413; /* *avx512f_unpckhpd512 */
16182 :
16183 : case E_V8DImode:
16184 : if (pattern1425 (x2,
16185 : E_V8DImode,
16186 : E_V16DImode) != 0
16187 : || !
16188 : #line 14806 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16189 : (TARGET_AVX512F))
16190 : return -1;
16191 : return 7234; /* *avx512f_interleave_highv8di */
16192 :
16193 : default:
16194 : return -1;
16195 : }
16196 :
16197 : default:
16198 : return -1;
16199 : }
16200 :
16201 : case 4L:
16202 : x5 = XVECEXP (x3, 0, 1);
16203 : if (XWINT (x5, 0) != 12L)
16204 : return -1;
16205 : x6 = XVECEXP (x3, 0, 2);
16206 : if (XWINT (x6, 0) != 5L)
16207 : return -1;
16208 : x7 = XVECEXP (x3, 0, 3);
16209 : if (XWINT (x7, 0) != 13L
16210 : || pattern1727 (x2) != 0)
16211 : return -1;
16212 : switch (GET_MODE (operands[0]))
16213 : {
16214 : case E_V8HImode:
16215 : if (pattern1494 (x2,
16216 : E_V8HImode,
16217 : E_V16HImode) != 0
16218 : || !
16219 : #line 19974 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16220 : (TARGET_SSE2 && 1 && 1))
16221 : return -1;
16222 : return 8387; /* vec_interleave_highv8hi */
16223 :
16224 : case E_V8HFmode:
16225 : if (pattern1494 (x2,
16226 : E_V8HFmode,
16227 : E_V16HFmode) != 0
16228 : || !
16229 : #line 19974 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16230 : (TARGET_SSE2 && 1 && 1))
16231 : return -1;
16232 : return 8389; /* vec_interleave_highv8hf */
16233 :
16234 : case E_V8BFmode:
16235 : if (pattern1494 (x2,
16236 : E_V8BFmode,
16237 : E_V16BFmode) != 0
16238 : || !
16239 : #line 19974 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16240 : (TARGET_SSE2 && 1 && 1))
16241 : return -1;
16242 : return 8391; /* vec_interleave_highv8bf */
16243 :
16244 : default:
16245 : return -1;
16246 : }
16247 :
16248 : default:
16249 : return -1;
16250 : }
16251 : }
16252 :
16253 : int
16254 : recog_290 (rtx x1 ATTRIBUTE_UNUSED,
16255 : rtx_insn *insn ATTRIBUTE_UNUSED,
16256 : int *pnum_clobbers ATTRIBUTE_UNUSED)
16257 : {
16258 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
16259 : rtx x2, x3, x4, x5;
16260 : int res ATTRIBUTE_UNUSED;
16261 : x2 = XEXP (x1, 1);
16262 : x3 = XEXP (x2, 1);
16263 : x4 = XVECEXP (x3, 0, 0);
16264 : if (GET_CODE (x4) != CONST_INT)
16265 : return -1;
16266 : operands[2] = x4;
16267 : if (const_0_to_7_operand (operands[2], E_VOIDmode))
16268 : {
16269 : x5 = XVECEXP (x3, 0, 1);
16270 : operands[3] = x5;
16271 : if (const_0_to_7_operand (operands[3], E_VOIDmode))
16272 : {
16273 : switch (GET_MODE (operands[0]))
16274 : {
16275 : case E_V2DFmode:
16276 : if (nonimmediate_operand (operands[0], E_V2DFmode)
16277 : && GET_MODE (x2) == E_V2DFmode
16278 : && register_operand (operands[1], E_V8DFmode)
16279 : &&
16280 : #line 12781 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16281 : (TARGET_AVX512DQ
16282 : && INTVAL (operands[2]) % 2 == 0
16283 : && INTVAL (operands[2]) == INTVAL (operands[3]) - 1))
16284 : return 5351; /* *avx512dq_vextractf64x2_1 */
16285 : break;
16286 :
16287 : case E_V2DImode:
16288 : if (nonimmediate_operand (operands[0], E_V2DImode)
16289 : && GET_MODE (x2) == E_V2DImode
16290 : && register_operand (operands[1], E_V8DImode)
16291 : &&
16292 : #line 12781 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16293 : (TARGET_AVX512DQ
16294 : && INTVAL (operands[2]) % 2 == 0
16295 : && INTVAL (operands[2]) == INTVAL (operands[3]) - 1))
16296 : return 5352; /* *avx512dq_vextracti64x2_1 */
16297 : break;
16298 :
16299 : default:
16300 : break;
16301 : }
16302 : }
16303 : }
16304 : x5 = XVECEXP (x3, 0, 1);
16305 : if (GET_CODE (x5) != CONST_INT)
16306 : return -1;
16307 : switch (XWINT (x4, 0))
16308 : {
16309 : case 0L:
16310 : if (XWINT (x5, 0) != 1L)
16311 : return -1;
16312 : switch (GET_MODE (operands[0]))
16313 : {
16314 : case E_V2DImode:
16315 : if (!nonimmediate_operand (operands[0], E_V2DImode)
16316 : || GET_MODE (x2) != E_V2DImode
16317 : || !nonimmediate_operand (operands[1], E_V4DImode)
16318 : || !
16319 : #line 13205 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16320 : (TARGET_AVX
16321 : && !(MEM_P (operands[0]) && MEM_P (operands[1]))))
16322 : return -1;
16323 : return 5375; /* vec_extract_lo_v4di */
16324 :
16325 : case E_V2DFmode:
16326 : if (!nonimmediate_operand (operands[0], E_V2DFmode)
16327 : || GET_MODE (x2) != E_V2DFmode
16328 : || !nonimmediate_operand (operands[1], E_V4DFmode)
16329 : || !
16330 : #line 13205 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16331 : (TARGET_AVX
16332 : && !(MEM_P (operands[0]) && MEM_P (operands[1]))))
16333 : return -1;
16334 : return 5376; /* vec_extract_lo_v4df */
16335 :
16336 : default:
16337 : return -1;
16338 : }
16339 :
16340 : case 2L:
16341 : if (XWINT (x5, 0) != 3L)
16342 : return -1;
16343 : switch (GET_MODE (operands[0]))
16344 : {
16345 : case E_V2DImode:
16346 : if (!nonimmediate_operand (operands[0], E_V2DImode)
16347 : || GET_MODE (x2) != E_V2DImode
16348 : || !register_operand (operands[1], E_V4DImode)
16349 : || !
16350 : #line 13241 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16351 : (TARGET_AVX))
16352 : return -1;
16353 : return 5379; /* vec_extract_hi_v4di */
16354 :
16355 : case E_V2DFmode:
16356 : if (!nonimmediate_operand (operands[0], E_V2DFmode)
16357 : || GET_MODE (x2) != E_V2DFmode
16358 : || !register_operand (operands[1], E_V4DFmode)
16359 : || !
16360 : #line 13241 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16361 : (TARGET_AVX))
16362 : return -1;
16363 : return 5380; /* vec_extract_hi_v4df */
16364 :
16365 : default:
16366 : return -1;
16367 : }
16368 :
16369 : default:
16370 : return -1;
16371 : }
16372 : }
16373 :
16374 : int
16375 : recog_294 (rtx x1 ATTRIBUTE_UNUSED,
16376 : rtx_insn *insn ATTRIBUTE_UNUSED,
16377 : int *pnum_clobbers ATTRIBUTE_UNUSED)
16378 : {
16379 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
16380 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
16381 : int res ATTRIBUTE_UNUSED;
16382 : x2 = XEXP (x1, 1);
16383 : x3 = XEXP (x2, 1);
16384 : x4 = XVECEXP (x3, 0, 1);
16385 : operands[3] = x4;
16386 : x5 = XVECEXP (x3, 0, 2);
16387 : operands[4] = x5;
16388 : x6 = XVECEXP (x3, 0, 3);
16389 : operands[5] = x6;
16390 : x7 = XVECEXP (x3, 0, 5);
16391 : operands[7] = x7;
16392 : x8 = XVECEXP (x3, 0, 6);
16393 : operands[8] = x8;
16394 : x9 = XVECEXP (x3, 0, 7);
16395 : operands[9] = x9;
16396 : switch (GET_MODE (operands[0]))
16397 : {
16398 : case E_V8DFmode:
16399 : if (pattern1632 (x2,
16400 : E_V8DFmode) != 0
16401 : || !
16402 : #line 20611 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16403 : (TARGET_AVX512F
16404 : && (INTVAL (operands[2]) & 1) == 0
16405 : && INTVAL (operands[2]) == INTVAL (operands[3]) - 1
16406 : && (INTVAL (operands[4]) & 1) == 0
16407 : && INTVAL (operands[4]) == INTVAL (operands[5]) - 1
16408 : && (INTVAL (operands[6]) & 1) == 0
16409 : && INTVAL (operands[6]) == INTVAL (operands[7]) - 1
16410 : && (INTVAL (operands[8]) & 1) == 0
16411 : && INTVAL (operands[8]) == INTVAL (operands[9]) - 1))
16412 : return -1;
16413 : return 8465; /* *avx512f_shuf_f64x2_1_1 */
16414 :
16415 : case E_V8DImode:
16416 : if (pattern1632 (x2,
16417 : E_V8DImode) != 0
16418 : || !
16419 : #line 20611 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16420 : (TARGET_AVX512F
16421 : && (INTVAL (operands[2]) & 1) == 0
16422 : && INTVAL (operands[2]) == INTVAL (operands[3]) - 1
16423 : && (INTVAL (operands[4]) & 1) == 0
16424 : && INTVAL (operands[4]) == INTVAL (operands[5]) - 1
16425 : && (INTVAL (operands[6]) & 1) == 0
16426 : && INTVAL (operands[6]) == INTVAL (operands[7]) - 1
16427 : && (INTVAL (operands[8]) & 1) == 0
16428 : && INTVAL (operands[8]) == INTVAL (operands[9]) - 1))
16429 : return -1;
16430 : return 8467; /* *avx512f_shuf_i64x2_1_1 */
16431 :
16432 : case E_V8SImode:
16433 : if (!register_operand (operands[0], E_V8SImode)
16434 : || GET_MODE (x2) != E_V8SImode
16435 : || !nonimmediate_operand (operands[1], E_V8SImode)
16436 : || pattern1728 () != 0
16437 : || !
16438 : #line 20968 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16439 : (TARGET_AVX2
16440 : && 1
16441 : && INTVAL (operands[2]) + 4 == INTVAL (operands[6])
16442 : && INTVAL (operands[3]) + 4 == INTVAL (operands[7])
16443 : && INTVAL (operands[4]) + 4 == INTVAL (operands[8])
16444 : && INTVAL (operands[5]) + 4 == INTVAL (operands[9])))
16445 : return -1;
16446 : return 8483; /* avx2_pshufd_1 */
16447 :
16448 : default:
16449 : return -1;
16450 : }
16451 : }
16452 :
16453 : int
16454 : recog_297 (rtx x1 ATTRIBUTE_UNUSED,
16455 : rtx_insn *insn ATTRIBUTE_UNUSED,
16456 : int *pnum_clobbers ATTRIBUTE_UNUSED)
16457 : {
16458 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
16459 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
16460 : rtx x10, x11, x12, x13, x14, x15, x16, x17;
16461 : rtx x18, x19;
16462 : int res ATTRIBUTE_UNUSED;
16463 : x2 = XEXP (x1, 1);
16464 : x3 = XEXP (x2, 1);
16465 : if (pattern931 (x3) != 0)
16466 : return -1;
16467 : x4 = XVECEXP (x3, 0, 0);
16468 : switch (XWINT (x4, 0))
16469 : {
16470 : case 0L:
16471 : if (pattern1792 (x3) != 0)
16472 : return -1;
16473 : switch (pattern1804 (x2))
16474 : {
16475 : case 0:
16476 : if (!
16477 : #line 13350 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16478 : (TARGET_AVX512F && !(MEM_P (operands[0]) && MEM_P (operands[1]))))
16479 : return -1;
16480 : return 5389; /* vec_extract_lo_v32hi */
16481 :
16482 : case 1:
16483 : if (!
16484 : #line 13350 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16485 : (TARGET_AVX512F && !(MEM_P (operands[0]) && MEM_P (operands[1]))))
16486 : return -1;
16487 : return 5390; /* vec_extract_lo_v32hf */
16488 :
16489 : case 2:
16490 : if (!
16491 : #line 13350 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16492 : (TARGET_AVX512F && !(MEM_P (operands[0]) && MEM_P (operands[1]))))
16493 : return -1;
16494 : return 5391; /* vec_extract_lo_v32bf */
16495 :
16496 : case 3:
16497 : if (!
16498 : #line 13520 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16499 : (TARGET_AVX && !(MEM_P (operands[0]) && MEM_P (operands[1]))))
16500 : return -1;
16501 : return 5403; /* vec_extract_lo_v32qi */
16502 :
16503 : default:
16504 : return -1;
16505 : }
16506 :
16507 : case 16L:
16508 : x5 = XVECEXP (x3, 0, 1);
16509 : if (XWINT (x5, 0) != 17L)
16510 : return -1;
16511 : x6 = XVECEXP (x3, 0, 2);
16512 : if (XWINT (x6, 0) != 18L)
16513 : return -1;
16514 : x7 = XVECEXP (x3, 0, 3);
16515 : if (XWINT (x7, 0) != 19L)
16516 : return -1;
16517 : x8 = XVECEXP (x3, 0, 4);
16518 : if (XWINT (x8, 0) != 20L)
16519 : return -1;
16520 : x9 = XVECEXP (x3, 0, 5);
16521 : if (XWINT (x9, 0) != 21L)
16522 : return -1;
16523 : x10 = XVECEXP (x3, 0, 6);
16524 : if (XWINT (x10, 0) != 22L)
16525 : return -1;
16526 : x11 = XVECEXP (x3, 0, 7);
16527 : if (XWINT (x11, 0) != 23L)
16528 : return -1;
16529 : x12 = XVECEXP (x3, 0, 8);
16530 : if (XWINT (x12, 0) != 24L)
16531 : return -1;
16532 : x13 = XVECEXP (x3, 0, 9);
16533 : if (XWINT (x13, 0) != 25L)
16534 : return -1;
16535 : x14 = XVECEXP (x3, 0, 10);
16536 : if (XWINT (x14, 0) != 26L)
16537 : return -1;
16538 : x15 = XVECEXP (x3, 0, 11);
16539 : if (XWINT (x15, 0) != 27L)
16540 : return -1;
16541 : x16 = XVECEXP (x3, 0, 12);
16542 : if (XWINT (x16, 0) != 28L)
16543 : return -1;
16544 : x17 = XVECEXP (x3, 0, 13);
16545 : if (XWINT (x17, 0) != 29L)
16546 : return -1;
16547 : x18 = XVECEXP (x3, 0, 14);
16548 : if (XWINT (x18, 0) != 30L)
16549 : return -1;
16550 : x19 = XVECEXP (x3, 0, 15);
16551 : if (XWINT (x19, 0) != 31L)
16552 : return -1;
16553 : switch (GET_MODE (operands[0]))
16554 : {
16555 : case E_V16HImode:
16556 : if (!nonimmediate_operand (operands[0], E_V16HImode)
16557 : || GET_MODE (x2) != E_V16HImode
16558 : || !register_operand (operands[1], E_V32HImode)
16559 : || !
16560 : #line 13391 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16561 : (TARGET_AVX512F))
16562 : return -1;
16563 : return 5392; /* vec_extract_hi_v32hi */
16564 :
16565 : case E_V16HFmode:
16566 : if (!nonimmediate_operand (operands[0], E_V16HFmode)
16567 : || GET_MODE (x2) != E_V16HFmode
16568 : || !register_operand (operands[1], E_V32HFmode)
16569 : || !
16570 : #line 13391 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16571 : (TARGET_AVX512F))
16572 : return -1;
16573 : return 5393; /* vec_extract_hi_v32hf */
16574 :
16575 : case E_V16BFmode:
16576 : if (!nonimmediate_operand (operands[0], E_V16BFmode)
16577 : || GET_MODE (x2) != E_V16BFmode
16578 : || !register_operand (operands[1], E_V32BFmode)
16579 : || !
16580 : #line 13391 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16581 : (TARGET_AVX512F))
16582 : return -1;
16583 : return 5394; /* vec_extract_hi_v32bf */
16584 :
16585 : case E_V16QImode:
16586 : if (!nonimmediate_operand (operands[0], E_V16QImode)
16587 : || GET_MODE (x2) != E_V16QImode
16588 : || !register_operand (operands[1], E_V32QImode)
16589 : || !
16590 : #line 13538 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16591 : (TARGET_AVX))
16592 : return -1;
16593 : return 5404; /* vec_extract_hi_v32qi */
16594 :
16595 : default:
16596 : return -1;
16597 : }
16598 :
16599 : default:
16600 : return -1;
16601 : }
16602 : }
16603 :
16604 : int
16605 : recog_308 (rtx x1 ATTRIBUTE_UNUSED,
16606 : rtx_insn *insn ATTRIBUTE_UNUSED,
16607 : int *pnum_clobbers ATTRIBUTE_UNUSED)
16608 : {
16609 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
16610 : rtx x2, x3, x4;
16611 : int res ATTRIBUTE_UNUSED;
16612 : x2 = XEXP (x1, 1);
16613 : x3 = XEXP (x2, 0);
16614 : switch (GET_CODE (x3))
16615 : {
16616 : case NOT:
16617 : x4 = XEXP (x3, 0);
16618 : operands[1] = x4;
16619 : switch (GET_CODE (operands[1]))
16620 : {
16621 : case GT:
16622 : case LT:
16623 : switch (pattern686 (x2))
16624 : {
16625 : case 0:
16626 : if (!(
16627 : #line 3414 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16628 : (TARGET_SSE && ix86_pre_reload_split ()
16629 : && rtx_equal_p (operands[2], operands[4])) &&
16630 : #line 425 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16631 : (TARGET_AVX)))
16632 : return -1;
16633 : return 3105; /* *minmaxv8sf3_3 */
16634 :
16635 : case 1:
16636 : if (!
16637 : #line 3414 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16638 : (TARGET_SSE && ix86_pre_reload_split ()
16639 : && rtx_equal_p (operands[2], operands[4])))
16640 : return -1;
16641 : return 3106; /* *minmaxv4sf3_3 */
16642 :
16643 : case 2:
16644 : if (!(
16645 : #line 3414 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16646 : (TARGET_SSE && ix86_pre_reload_split ()
16647 : && rtx_equal_p (operands[2], operands[4])) &&
16648 : #line 426 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16649 : (TARGET_AVX)))
16650 : return -1;
16651 : return 3107; /* *minmaxv4df3_3 */
16652 :
16653 : case 3:
16654 : if (!(
16655 : #line 3414 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16656 : (TARGET_SSE && ix86_pre_reload_split ()
16657 : && rtx_equal_p (operands[2], operands[4])) &&
16658 : #line 426 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16659 : (TARGET_SSE2)))
16660 : return -1;
16661 : return 3108; /* *minmaxv2df3_3 */
16662 :
16663 : default:
16664 : return -1;
16665 : }
16666 :
16667 : case REG:
16668 : case SUBREG:
16669 : case MEM:
16670 : case VEC_DUPLICATE:
16671 : switch (pattern539 (x2))
16672 : {
16673 : case 0:
16674 : switch (GET_MODE (operands[0]))
16675 : {
16676 : case E_V16BFmode:
16677 : if (pattern623 (x2,
16678 : E_V16BFmode) != 0
16679 : || !(
16680 : #line 5590 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16681 : (TARGET_SSE && 1
16682 : && (!false || 16 != 16)) &&
16683 : #line 430 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16684 : (TARGET_AVX)))
16685 : return -1;
16686 : return 3764; /* avx512bf16_andnotv16bf3 */
16687 :
16688 : case E_V8BFmode:
16689 : if (pattern623 (x2,
16690 : E_V8BFmode) != 0
16691 : || !(
16692 : #line 5590 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16693 : (TARGET_SSE && 1
16694 : && (!false || 16 != 16)) &&
16695 : #line 430 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16696 : (TARGET_SSE2)))
16697 : return -1;
16698 : return 3765; /* avx512bf16_andnotv8bf3 */
16699 :
16700 : case E_V16HFmode:
16701 : if (pattern623 (x2,
16702 : E_V16HFmode) != 0
16703 : || !(
16704 : #line 5590 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16705 : (TARGET_SSE && 1
16706 : && (!false || 16 != 16)) &&
16707 : #line 431 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16708 : (TARGET_AVX)))
16709 : return -1;
16710 : return 3766; /* avx512fp16_andnotv16hf3 */
16711 :
16712 : case E_V8HFmode:
16713 : if (pattern623 (x2,
16714 : E_V8HFmode) != 0
16715 : || !(
16716 : #line 5590 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16717 : (TARGET_SSE && 1
16718 : && (!false || 16 != 16)) &&
16719 : #line 431 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16720 : (TARGET_SSE2)))
16721 : return -1;
16722 : return 3767; /* avx512fp16_andnotv8hf3 */
16723 :
16724 : case E_V8SFmode:
16725 : if (pattern623 (x2,
16726 : E_V8SFmode) != 0
16727 : || !(
16728 : #line 5590 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16729 : (TARGET_SSE && 1
16730 : && (!false || 32 != 16)) &&
16731 : #line 432 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16732 : (TARGET_AVX)))
16733 : return -1;
16734 : return 3768; /* avx_andnotv8sf3 */
16735 :
16736 : case E_V4SFmode:
16737 : if (pattern623 (x2,
16738 : E_V4SFmode) != 0
16739 : || !
16740 : #line 5590 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16741 : (TARGET_SSE && 1
16742 : && (!false || 32 != 16)))
16743 : return -1;
16744 : return 3770; /* sse_andnotv4sf3 */
16745 :
16746 : case E_V4DFmode:
16747 : if (pattern623 (x2,
16748 : E_V4DFmode) != 0
16749 : || !(
16750 : #line 5590 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16751 : (TARGET_SSE && 1
16752 : && (!false || 64 != 16)) &&
16753 : #line 433 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16754 : (TARGET_AVX)))
16755 : return -1;
16756 : return 3772; /* avx_andnotv4df3 */
16757 :
16758 : case E_V2DFmode:
16759 : if (pattern623 (x2,
16760 : E_V2DFmode) != 0
16761 : || !(
16762 : #line 5590 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16763 : (TARGET_SSE && 1
16764 : && (!false || 64 != 16)) &&
16765 : #line 433 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16766 : (TARGET_SSE2)))
16767 : return -1;
16768 : return 3774; /* sse2_andnotv2df3 */
16769 :
16770 : case E_V32BFmode:
16771 : if (pattern745 (x2,
16772 : E_V32BFmode) != 0
16773 : || !
16774 : #line 5665 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16775 : (TARGET_AVX512F && (!false || 16 != 16)))
16776 : return -1;
16777 : return 3776; /* avx512bf16_andnotv32bf3 */
16778 :
16779 : case E_V32HFmode:
16780 : if (pattern745 (x2,
16781 : E_V32HFmode) != 0
16782 : || !
16783 : #line 5665 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16784 : (TARGET_AVX512F && (!false || 16 != 16)))
16785 : return -1;
16786 : return 3777; /* avx512fp16_andnotv32hf3 */
16787 :
16788 : case E_V16SFmode:
16789 : if (pattern745 (x2,
16790 : E_V16SFmode) != 0
16791 : || !
16792 : #line 5665 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16793 : (TARGET_AVX512F && (!false || 32 != 16)))
16794 : return -1;
16795 : return 3778; /* avx512f_andnotv16sf3 */
16796 :
16797 : case E_V8DFmode:
16798 : if (pattern745 (x2,
16799 : E_V8DFmode) != 0
16800 : || !
16801 : #line 5665 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16802 : (TARGET_AVX512F && (!false || 64 != 16)))
16803 : return -1;
16804 : return 3780; /* avx512f_andnotv8df3 */
16805 :
16806 : case E_V1TImode:
16807 : if (pattern623 (x2,
16808 : E_V1TImode) != 0
16809 : || !
16810 : #line 5956 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16811 : (TARGET_SSE))
16812 : return -1;
16813 : return 3853; /* *andnotv1ti3 */
16814 :
16815 : case E_V16SImode:
16816 : if (pattern933 (x2,
16817 : E_V16SImode) != 0
16818 : || !(
16819 : #line 18826 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16820 : (TARGET_SSE
16821 : && (register_operand (operands[1], V16SImode)
16822 : || register_operand (operands[2], V16SImode))) &&
16823 : #line 556 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16824 : (TARGET_AVX512F)))
16825 : return -1;
16826 : return 8030; /* *andnotv16si3 */
16827 :
16828 : case E_V8DImode:
16829 : if (pattern933 (x2,
16830 : E_V8DImode) != 0
16831 : || !(
16832 : #line 18826 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16833 : (TARGET_SSE
16834 : && (register_operand (operands[1], V8DImode)
16835 : || register_operand (operands[2], V8DImode))) &&
16836 : #line 556 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16837 : (TARGET_AVX512F)))
16838 : return -1;
16839 : return 8031; /* *andnotv8di3 */
16840 :
16841 : case E_V64QImode:
16842 : if (pattern933 (x2,
16843 : E_V64QImode) != 0
16844 : || !(
16845 : #line 18826 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16846 : (TARGET_SSE
16847 : && (register_operand (operands[1], V64QImode)
16848 : || register_operand (operands[2], V64QImode))) &&
16849 : #line 557 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16850 : (TARGET_AVX512BW)))
16851 : return -1;
16852 : return 8032; /* *andnotv64qi3 */
16853 :
16854 : case E_V32QImode:
16855 : if (pattern933 (x2,
16856 : E_V32QImode) != 0
16857 : || !(
16858 : #line 18826 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16859 : (TARGET_SSE
16860 : && (register_operand (operands[1], V32QImode)
16861 : || register_operand (operands[2], V32QImode))) &&
16862 : #line 557 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16863 : (TARGET_AVX)))
16864 : return -1;
16865 : return 8033; /* *andnotv32qi3 */
16866 :
16867 : case E_V16QImode:
16868 : if (pattern933 (x2,
16869 : E_V16QImode) != 0
16870 : || !
16871 : #line 18826 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16872 : (TARGET_SSE
16873 : && (register_operand (operands[1], V16QImode)
16874 : || register_operand (operands[2], V16QImode))))
16875 : return -1;
16876 : return 8034; /* *andnotv16qi3 */
16877 :
16878 : case E_V32HImode:
16879 : if (pattern933 (x2,
16880 : E_V32HImode) != 0
16881 : || !(
16882 : #line 18826 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16883 : (TARGET_SSE
16884 : && (register_operand (operands[1], V32HImode)
16885 : || register_operand (operands[2], V32HImode))) &&
16886 : #line 558 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16887 : (TARGET_AVX512BW)))
16888 : return -1;
16889 : return 8035; /* *andnotv32hi3 */
16890 :
16891 : case E_V16HImode:
16892 : if (pattern933 (x2,
16893 : E_V16HImode) != 0
16894 : || !(
16895 : #line 18826 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16896 : (TARGET_SSE
16897 : && (register_operand (operands[1], V16HImode)
16898 : || register_operand (operands[2], V16HImode))) &&
16899 : #line 558 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16900 : (TARGET_AVX)))
16901 : return -1;
16902 : return 8036; /* *andnotv16hi3 */
16903 :
16904 : case E_V8HImode:
16905 : if (pattern933 (x2,
16906 : E_V8HImode) != 0
16907 : || !
16908 : #line 18826 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16909 : (TARGET_SSE
16910 : && (register_operand (operands[1], V8HImode)
16911 : || register_operand (operands[2], V8HImode))))
16912 : return -1;
16913 : return 8037; /* *andnotv8hi3 */
16914 :
16915 : case E_V8SImode:
16916 : if (pattern933 (x2,
16917 : E_V8SImode) != 0
16918 : || !(
16919 : #line 18826 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16920 : (TARGET_SSE
16921 : && (register_operand (operands[1], V8SImode)
16922 : || register_operand (operands[2], V8SImode))) &&
16923 : #line 559 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16924 : (TARGET_AVX)))
16925 : return -1;
16926 : return 8038; /* *andnotv8si3 */
16927 :
16928 : case E_V4SImode:
16929 : if (pattern933 (x2,
16930 : E_V4SImode) != 0
16931 : || !
16932 : #line 18826 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16933 : (TARGET_SSE
16934 : && (register_operand (operands[1], V4SImode)
16935 : || register_operand (operands[2], V4SImode))))
16936 : return -1;
16937 : return 8039; /* *andnotv4si3 */
16938 :
16939 : case E_V4DImode:
16940 : if (pattern933 (x2,
16941 : E_V4DImode) != 0
16942 : || !(
16943 : #line 18826 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16944 : (TARGET_SSE
16945 : && (register_operand (operands[1], V4DImode)
16946 : || register_operand (operands[2], V4DImode))) &&
16947 : #line 560 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16948 : (TARGET_AVX)))
16949 : return -1;
16950 : return 8040; /* *andnotv4di3 */
16951 :
16952 : case E_V2DImode:
16953 : if (pattern933 (x2,
16954 : E_V2DImode) != 0
16955 : || !
16956 : #line 18826 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16957 : (TARGET_SSE
16958 : && (register_operand (operands[1], V2DImode)
16959 : || register_operand (operands[2], V2DImode))))
16960 : return -1;
16961 : return 8041; /* *andnotv2di3 */
16962 :
16963 : default:
16964 : return -1;
16965 : }
16966 :
16967 : case 1:
16968 : if (!(
16969 : #line 19359 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16970 : ((64 == 64 || TARGET_AVX512VL
16971 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
16972 : && (register_operand (operands[1], V16SImode)
16973 : || register_operand (operands[2], V16SImode))) &&
16974 : #line 556 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16975 : (TARGET_AVX512F)))
16976 : return -1;
16977 : return 8129; /* *norv16si3 */
16978 :
16979 : case 2:
16980 : if (!(
16981 : #line 19359 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16982 : ((64 == 64 || TARGET_AVX512VL
16983 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
16984 : && (register_operand (operands[1], V8DImode)
16985 : || register_operand (operands[2], V8DImode))) &&
16986 : #line 556 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16987 : (TARGET_AVX512F)))
16988 : return -1;
16989 : return 8131; /* *norv8di3 */
16990 :
16991 : case 3:
16992 : if (!(
16993 : #line 19359 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16994 : ((64 == 64 || TARGET_AVX512VL
16995 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
16996 : && (register_operand (operands[1], V64QImode)
16997 : || register_operand (operands[2], V64QImode))) &&
16998 : #line 557 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16999 : (TARGET_AVX512BW)))
17000 : return -1;
17001 : return 8133; /* *norv64qi3 */
17002 :
17003 : case 4:
17004 : if (!(
17005 : #line 19359 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17006 : ((32 == 64 || TARGET_AVX512VL
17007 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17008 : && (register_operand (operands[1], V32QImode)
17009 : || register_operand (operands[2], V32QImode))) &&
17010 : #line 557 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17011 : (TARGET_AVX)))
17012 : return -1;
17013 : return 8135; /* *norv32qi3 */
17014 :
17015 : case 5:
17016 : if (!
17017 : #line 19359 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17018 : ((16 == 64 || TARGET_AVX512VL
17019 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17020 : && (register_operand (operands[1], V16QImode)
17021 : || register_operand (operands[2], V16QImode))))
17022 : return -1;
17023 : return 8137; /* *norv16qi3 */
17024 :
17025 : case 6:
17026 : if (!(
17027 : #line 19359 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17028 : ((64 == 64 || TARGET_AVX512VL
17029 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17030 : && (register_operand (operands[1], V32HImode)
17031 : || register_operand (operands[2], V32HImode))) &&
17032 : #line 558 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17033 : (TARGET_AVX512BW)))
17034 : return -1;
17035 : return 8139; /* *norv32hi3 */
17036 :
17037 : case 7:
17038 : if (!(
17039 : #line 19359 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17040 : ((32 == 64 || TARGET_AVX512VL
17041 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17042 : && (register_operand (operands[1], V16HImode)
17043 : || register_operand (operands[2], V16HImode))) &&
17044 : #line 558 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17045 : (TARGET_AVX)))
17046 : return -1;
17047 : return 8141; /* *norv16hi3 */
17048 :
17049 : case 8:
17050 : if (!
17051 : #line 19359 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17052 : ((16 == 64 || TARGET_AVX512VL
17053 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17054 : && (register_operand (operands[1], V8HImode)
17055 : || register_operand (operands[2], V8HImode))))
17056 : return -1;
17057 : return 8143; /* *norv8hi3 */
17058 :
17059 : case 9:
17060 : if (!(
17061 : #line 19359 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17062 : ((32 == 64 || TARGET_AVX512VL
17063 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17064 : && (register_operand (operands[1], V8SImode)
17065 : || register_operand (operands[2], V8SImode))) &&
17066 : #line 559 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17067 : (TARGET_AVX)))
17068 : return -1;
17069 : return 8145; /* *norv8si3 */
17070 :
17071 : case 10:
17072 : if (!
17073 : #line 19359 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17074 : ((16 == 64 || TARGET_AVX512VL
17075 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17076 : && (register_operand (operands[1], V4SImode)
17077 : || register_operand (operands[2], V4SImode))))
17078 : return -1;
17079 : return 8147; /* *norv4si3 */
17080 :
17081 : case 11:
17082 : if (!(
17083 : #line 19359 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17084 : ((32 == 64 || TARGET_AVX512VL
17085 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17086 : && (register_operand (operands[1], V4DImode)
17087 : || register_operand (operands[2], V4DImode))) &&
17088 : #line 560 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17089 : (TARGET_AVX)))
17090 : return -1;
17091 : return 8149; /* *norv4di3 */
17092 :
17093 : case 12:
17094 : if (!
17095 : #line 19359 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17096 : ((16 == 64 || TARGET_AVX512VL
17097 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17098 : && (register_operand (operands[1], V2DImode)
17099 : || register_operand (operands[2], V2DImode))))
17100 : return -1;
17101 : return 8151; /* *norv2di3 */
17102 :
17103 : default:
17104 : return -1;
17105 : }
17106 :
17107 : default:
17108 : return -1;
17109 : }
17110 :
17111 : case GT:
17112 : case LT:
17113 : operands[1] = x3;
17114 : switch (pattern529 (x2))
17115 : {
17116 : case 0:
17117 : if ((
17118 : #line 3436 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17119 : (TARGET_SSE && ix86_pre_reload_split ()
17120 : && rtx_equal_p (operands[2], operands[4])) &&
17121 : #line 425 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17122 : (TARGET_AVX)))
17123 : return 3109; /* *minmaxv8sf3_4 */
17124 : break;
17125 :
17126 : case 1:
17127 : if (
17128 : #line 3436 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17129 : (TARGET_SSE && ix86_pre_reload_split ()
17130 : && rtx_equal_p (operands[2], operands[4])))
17131 : return 3110; /* *minmaxv4sf3_4 */
17132 : break;
17133 :
17134 : case 2:
17135 : if ((
17136 : #line 3436 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17137 : (TARGET_SSE && ix86_pre_reload_split ()
17138 : && rtx_equal_p (operands[2], operands[4])) &&
17139 : #line 426 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17140 : (TARGET_AVX)))
17141 : return 3111; /* *minmaxv4df3_4 */
17142 : break;
17143 :
17144 : case 3:
17145 : if ((
17146 : #line 3436 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17147 : (TARGET_SSE && ix86_pre_reload_split ()
17148 : && rtx_equal_p (operands[2], operands[4])) &&
17149 : #line 426 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17150 : (TARGET_SSE2)))
17151 : return 3112; /* *minmaxv2df3_4 */
17152 : break;
17153 :
17154 : default:
17155 : break;
17156 : }
17157 : x4 = XEXP (x3, 0);
17158 : operands[1] = x4;
17159 : switch (pattern531 (x2))
17160 : {
17161 : case 0:
17162 : if (!(
17163 : #line 17650 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17164 : (TARGET_SSE4_2 && ix86_pre_reload_split ()) &&
17165 : #line 697 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17166 : (TARGET_AVX2)))
17167 : return -1;
17168 : return 7715; /* *avx2_lshrv4di3_1 */
17169 :
17170 : case 1:
17171 : if (!
17172 : #line 17650 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17173 : (TARGET_SSE4_2 && ix86_pre_reload_split ()))
17174 : return -1;
17175 : return 7716; /* *avx2_lshrv2di3_1 */
17176 :
17177 : case 2:
17178 : switch (GET_MODE (operands[0]))
17179 : {
17180 : case E_V4DImode:
17181 : if (pattern956 (x2,
17182 : E_V4DImode) != 0
17183 : || !(
17184 : #line 17667 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17185 : (TARGET_SSE2 && ix86_pre_reload_split ()) &&
17186 : #line 697 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17187 : (TARGET_AVX2)))
17188 : return -1;
17189 : return 7717; /* *avx2_lshrv4di3_2 */
17190 :
17191 : case E_V2DImode:
17192 : if (pattern956 (x2,
17193 : E_V2DImode) != 0
17194 : || !
17195 : #line 17667 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17196 : (TARGET_SSE2 && ix86_pre_reload_split ()))
17197 : return -1;
17198 : return 7718; /* *avx2_lshrv2di3_2 */
17199 :
17200 : default:
17201 : return -1;
17202 : }
17203 :
17204 : default:
17205 : return -1;
17206 : }
17207 :
17208 : case REG:
17209 : case SUBREG:
17210 : case MEM:
17211 : case VEC_DUPLICATE:
17212 : return recog_305 (x1, insn, pnum_clobbers);
17213 :
17214 : case AND:
17215 : x4 = XEXP (x3, 0);
17216 : switch (GET_CODE (x4))
17217 : {
17218 : case REG:
17219 : case SUBREG:
17220 : case MEM:
17221 : case NOT:
17222 : switch (pattern535 (x2))
17223 : {
17224 : case 0:
17225 : if (!(
17226 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17227 : ((64 == 64 || TARGET_AVX512VL
17228 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17229 : && ix86_pre_reload_split ()
17230 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17231 : STRIP_UNARY (operands[4]))
17232 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17233 : STRIP_UNARY (operands[4]))
17234 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17235 : STRIP_UNARY (operands[3]))
17236 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17237 : STRIP_UNARY (operands[3])))) &&
17238 : #line 345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17239 : (TARGET_AVX512F)))
17240 : return -1;
17241 : return 5537; /* *avx512bw_vpternlogv64qi_1 */
17242 :
17243 : case 1:
17244 : if (!(
17245 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17246 : ((32 == 64 || TARGET_AVX512VL
17247 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17248 : && ix86_pre_reload_split ()
17249 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17250 : STRIP_UNARY (operands[4]))
17251 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17252 : STRIP_UNARY (operands[4]))
17253 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17254 : STRIP_UNARY (operands[3]))
17255 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17256 : STRIP_UNARY (operands[3])))) &&
17257 : #line 345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17258 : (TARGET_AVX)))
17259 : return -1;
17260 : return 5564; /* *avx512vl_vpternlogv32qi_1 */
17261 :
17262 : case 2:
17263 : if (!
17264 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17265 : ((16 == 64 || TARGET_AVX512VL
17266 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17267 : && ix86_pre_reload_split ()
17268 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17269 : STRIP_UNARY (operands[4]))
17270 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17271 : STRIP_UNARY (operands[4]))
17272 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17273 : STRIP_UNARY (operands[3]))
17274 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17275 : STRIP_UNARY (operands[3])))))
17276 : return -1;
17277 : return 5591; /* *avx512vl_vpternlogv16qi_1 */
17278 :
17279 : case 3:
17280 : if (!(
17281 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17282 : ((64 == 64 || TARGET_AVX512VL
17283 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17284 : && ix86_pre_reload_split ()
17285 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17286 : STRIP_UNARY (operands[4]))
17287 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17288 : STRIP_UNARY (operands[4]))
17289 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17290 : STRIP_UNARY (operands[3]))
17291 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17292 : STRIP_UNARY (operands[3])))) &&
17293 : #line 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17294 : (TARGET_AVX512F)))
17295 : return -1;
17296 : return 5618; /* *avx512bw_vpternlogv32hi_1 */
17297 :
17298 : case 4:
17299 : if (!(
17300 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17301 : ((32 == 64 || TARGET_AVX512VL
17302 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17303 : && ix86_pre_reload_split ()
17304 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17305 : STRIP_UNARY (operands[4]))
17306 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17307 : STRIP_UNARY (operands[4]))
17308 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17309 : STRIP_UNARY (operands[3]))
17310 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17311 : STRIP_UNARY (operands[3])))) &&
17312 : #line 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17313 : (TARGET_AVX)))
17314 : return -1;
17315 : return 5645; /* *avx512vl_vpternlogv16hi_1 */
17316 :
17317 : case 5:
17318 : if (!
17319 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17320 : ((16 == 64 || TARGET_AVX512VL
17321 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17322 : && ix86_pre_reload_split ()
17323 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17324 : STRIP_UNARY (operands[4]))
17325 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17326 : STRIP_UNARY (operands[4]))
17327 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17328 : STRIP_UNARY (operands[3]))
17329 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17330 : STRIP_UNARY (operands[3])))))
17331 : return -1;
17332 : return 5672; /* *avx512vl_vpternlogv8hi_1 */
17333 :
17334 : case 6:
17335 : if (!(
17336 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17337 : ((64 == 64 || TARGET_AVX512VL
17338 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17339 : && ix86_pre_reload_split ()
17340 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17341 : STRIP_UNARY (operands[4]))
17342 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17343 : STRIP_UNARY (operands[4]))
17344 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17345 : STRIP_UNARY (operands[3]))
17346 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17347 : STRIP_UNARY (operands[3])))) &&
17348 : #line 347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17349 : (TARGET_AVX512F)))
17350 : return -1;
17351 : return 5699; /* *avx512f_vpternlogv16si_1 */
17352 :
17353 : case 7:
17354 : if (!(
17355 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17356 : ((32 == 64 || TARGET_AVX512VL
17357 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17358 : && ix86_pre_reload_split ()
17359 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17360 : STRIP_UNARY (operands[4]))
17361 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17362 : STRIP_UNARY (operands[4]))
17363 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17364 : STRIP_UNARY (operands[3]))
17365 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17366 : STRIP_UNARY (operands[3])))) &&
17367 : #line 347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17368 : (TARGET_AVX)))
17369 : return -1;
17370 : return 5726; /* *avx512vl_vpternlogv8si_1 */
17371 :
17372 : case 8:
17373 : if (!
17374 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17375 : ((16 == 64 || TARGET_AVX512VL
17376 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17377 : && ix86_pre_reload_split ()
17378 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17379 : STRIP_UNARY (operands[4]))
17380 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17381 : STRIP_UNARY (operands[4]))
17382 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17383 : STRIP_UNARY (operands[3]))
17384 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17385 : STRIP_UNARY (operands[3])))))
17386 : return -1;
17387 : return 5753; /* *avx512vl_vpternlogv4si_1 */
17388 :
17389 : case 9:
17390 : if (!(
17391 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17392 : ((64 == 64 || TARGET_AVX512VL
17393 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17394 : && ix86_pre_reload_split ()
17395 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17396 : STRIP_UNARY (operands[4]))
17397 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17398 : STRIP_UNARY (operands[4]))
17399 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17400 : STRIP_UNARY (operands[3]))
17401 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17402 : STRIP_UNARY (operands[3])))) &&
17403 : #line 348 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17404 : (TARGET_AVX512F)))
17405 : return -1;
17406 : return 5780; /* *avx512f_vpternlogv8di_1 */
17407 :
17408 : case 10:
17409 : if (!(
17410 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17411 : ((32 == 64 || TARGET_AVX512VL
17412 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17413 : && ix86_pre_reload_split ()
17414 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17415 : STRIP_UNARY (operands[4]))
17416 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17417 : STRIP_UNARY (operands[4]))
17418 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17419 : STRIP_UNARY (operands[3]))
17420 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17421 : STRIP_UNARY (operands[3])))) &&
17422 : #line 348 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17423 : (TARGET_AVX)))
17424 : return -1;
17425 : return 5807; /* *avx512vl_vpternlogv4di_1 */
17426 :
17427 : case 11:
17428 : if (!
17429 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17430 : ((16 == 64 || TARGET_AVX512VL
17431 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17432 : && ix86_pre_reload_split ()
17433 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17434 : STRIP_UNARY (operands[4]))
17435 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17436 : STRIP_UNARY (operands[4]))
17437 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17438 : STRIP_UNARY (operands[3]))
17439 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17440 : STRIP_UNARY (operands[3])))))
17441 : return -1;
17442 : return 5834; /* *avx512vl_vpternlogv2di_1 */
17443 :
17444 : case 12:
17445 : if (!(
17446 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17447 : ((64 == 64 || TARGET_AVX512VL
17448 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17449 : && ix86_pre_reload_split ()
17450 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17451 : STRIP_UNARY (operands[4]))
17452 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17453 : STRIP_UNARY (operands[4]))
17454 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17455 : STRIP_UNARY (operands[3]))
17456 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17457 : STRIP_UNARY (operands[3])))) &&
17458 : #line 345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17459 : (TARGET_AVX512F)))
17460 : return -1;
17461 : return 5540; /* *avx512bw_vpternlogv64qi_1 */
17462 :
17463 : case 13:
17464 : if (!(
17465 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17466 : ((32 == 64 || TARGET_AVX512VL
17467 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17468 : && ix86_pre_reload_split ()
17469 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17470 : STRIP_UNARY (operands[4]))
17471 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17472 : STRIP_UNARY (operands[4]))
17473 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17474 : STRIP_UNARY (operands[3]))
17475 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17476 : STRIP_UNARY (operands[3])))) &&
17477 : #line 345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17478 : (TARGET_AVX)))
17479 : return -1;
17480 : return 5567; /* *avx512vl_vpternlogv32qi_1 */
17481 :
17482 : case 14:
17483 : if (!
17484 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17485 : ((16 == 64 || TARGET_AVX512VL
17486 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17487 : && ix86_pre_reload_split ()
17488 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17489 : STRIP_UNARY (operands[4]))
17490 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17491 : STRIP_UNARY (operands[4]))
17492 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17493 : STRIP_UNARY (operands[3]))
17494 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17495 : STRIP_UNARY (operands[3])))))
17496 : return -1;
17497 : return 5594; /* *avx512vl_vpternlogv16qi_1 */
17498 :
17499 : case 15:
17500 : if (!(
17501 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17502 : ((64 == 64 || TARGET_AVX512VL
17503 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17504 : && ix86_pre_reload_split ()
17505 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17506 : STRIP_UNARY (operands[4]))
17507 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17508 : STRIP_UNARY (operands[4]))
17509 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17510 : STRIP_UNARY (operands[3]))
17511 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17512 : STRIP_UNARY (operands[3])))) &&
17513 : #line 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17514 : (TARGET_AVX512F)))
17515 : return -1;
17516 : return 5621; /* *avx512bw_vpternlogv32hi_1 */
17517 :
17518 : case 16:
17519 : if (!(
17520 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17521 : ((32 == 64 || TARGET_AVX512VL
17522 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17523 : && ix86_pre_reload_split ()
17524 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17525 : STRIP_UNARY (operands[4]))
17526 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17527 : STRIP_UNARY (operands[4]))
17528 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17529 : STRIP_UNARY (operands[3]))
17530 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17531 : STRIP_UNARY (operands[3])))) &&
17532 : #line 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17533 : (TARGET_AVX)))
17534 : return -1;
17535 : return 5648; /* *avx512vl_vpternlogv16hi_1 */
17536 :
17537 : case 17:
17538 : if (!
17539 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17540 : ((16 == 64 || TARGET_AVX512VL
17541 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17542 : && ix86_pre_reload_split ()
17543 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17544 : STRIP_UNARY (operands[4]))
17545 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17546 : STRIP_UNARY (operands[4]))
17547 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17548 : STRIP_UNARY (operands[3]))
17549 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17550 : STRIP_UNARY (operands[3])))))
17551 : return -1;
17552 : return 5675; /* *avx512vl_vpternlogv8hi_1 */
17553 :
17554 : case 18:
17555 : if (!(
17556 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17557 : ((64 == 64 || TARGET_AVX512VL
17558 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17559 : && ix86_pre_reload_split ()
17560 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17561 : STRIP_UNARY (operands[4]))
17562 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17563 : STRIP_UNARY (operands[4]))
17564 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17565 : STRIP_UNARY (operands[3]))
17566 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17567 : STRIP_UNARY (operands[3])))) &&
17568 : #line 347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17569 : (TARGET_AVX512F)))
17570 : return -1;
17571 : return 5702; /* *avx512f_vpternlogv16si_1 */
17572 :
17573 : case 19:
17574 : if (!(
17575 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17576 : ((32 == 64 || TARGET_AVX512VL
17577 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17578 : && ix86_pre_reload_split ()
17579 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17580 : STRIP_UNARY (operands[4]))
17581 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17582 : STRIP_UNARY (operands[4]))
17583 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17584 : STRIP_UNARY (operands[3]))
17585 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17586 : STRIP_UNARY (operands[3])))) &&
17587 : #line 347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17588 : (TARGET_AVX)))
17589 : return -1;
17590 : return 5729; /* *avx512vl_vpternlogv8si_1 */
17591 :
17592 : case 20:
17593 : if (!
17594 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17595 : ((16 == 64 || TARGET_AVX512VL
17596 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17597 : && ix86_pre_reload_split ()
17598 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17599 : STRIP_UNARY (operands[4]))
17600 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17601 : STRIP_UNARY (operands[4]))
17602 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17603 : STRIP_UNARY (operands[3]))
17604 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17605 : STRIP_UNARY (operands[3])))))
17606 : return -1;
17607 : return 5756; /* *avx512vl_vpternlogv4si_1 */
17608 :
17609 : case 21:
17610 : if (!(
17611 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17612 : ((64 == 64 || TARGET_AVX512VL
17613 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17614 : && ix86_pre_reload_split ()
17615 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17616 : STRIP_UNARY (operands[4]))
17617 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17618 : STRIP_UNARY (operands[4]))
17619 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17620 : STRIP_UNARY (operands[3]))
17621 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17622 : STRIP_UNARY (operands[3])))) &&
17623 : #line 348 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17624 : (TARGET_AVX512F)))
17625 : return -1;
17626 : return 5783; /* *avx512f_vpternlogv8di_1 */
17627 :
17628 : case 22:
17629 : if (!(
17630 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17631 : ((32 == 64 || TARGET_AVX512VL
17632 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17633 : && ix86_pre_reload_split ()
17634 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17635 : STRIP_UNARY (operands[4]))
17636 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17637 : STRIP_UNARY (operands[4]))
17638 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17639 : STRIP_UNARY (operands[3]))
17640 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17641 : STRIP_UNARY (operands[3])))) &&
17642 : #line 348 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17643 : (TARGET_AVX)))
17644 : return -1;
17645 : return 5810; /* *avx512vl_vpternlogv4di_1 */
17646 :
17647 : case 23:
17648 : if (!
17649 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17650 : ((16 == 64 || TARGET_AVX512VL
17651 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17652 : && ix86_pre_reload_split ()
17653 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17654 : STRIP_UNARY (operands[4]))
17655 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17656 : STRIP_UNARY (operands[4]))
17657 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17658 : STRIP_UNARY (operands[3]))
17659 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17660 : STRIP_UNARY (operands[3])))))
17661 : return -1;
17662 : return 5837; /* *avx512vl_vpternlogv2di_1 */
17663 :
17664 : case 24:
17665 : if (!(
17666 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17667 : ((64 == 64 || TARGET_AVX512VL
17668 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17669 : && ix86_pre_reload_split ()
17670 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17671 : STRIP_UNARY (operands[4]))
17672 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17673 : STRIP_UNARY (operands[4]))
17674 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17675 : STRIP_UNARY (operands[3]))
17676 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17677 : STRIP_UNARY (operands[3])))) &&
17678 : #line 345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17679 : (TARGET_AVX512F)))
17680 : return -1;
17681 : return 5543; /* *avx512bw_vpternlogv64qi_1 */
17682 :
17683 : case 25:
17684 : if (!(
17685 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17686 : ((32 == 64 || TARGET_AVX512VL
17687 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17688 : && ix86_pre_reload_split ()
17689 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17690 : STRIP_UNARY (operands[4]))
17691 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17692 : STRIP_UNARY (operands[4]))
17693 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17694 : STRIP_UNARY (operands[3]))
17695 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17696 : STRIP_UNARY (operands[3])))) &&
17697 : #line 345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17698 : (TARGET_AVX)))
17699 : return -1;
17700 : return 5570; /* *avx512vl_vpternlogv32qi_1 */
17701 :
17702 : case 26:
17703 : if (!
17704 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17705 : ((16 == 64 || TARGET_AVX512VL
17706 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17707 : && ix86_pre_reload_split ()
17708 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17709 : STRIP_UNARY (operands[4]))
17710 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17711 : STRIP_UNARY (operands[4]))
17712 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17713 : STRIP_UNARY (operands[3]))
17714 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17715 : STRIP_UNARY (operands[3])))))
17716 : return -1;
17717 : return 5597; /* *avx512vl_vpternlogv16qi_1 */
17718 :
17719 : case 27:
17720 : if (!(
17721 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17722 : ((64 == 64 || TARGET_AVX512VL
17723 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17724 : && ix86_pre_reload_split ()
17725 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17726 : STRIP_UNARY (operands[4]))
17727 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17728 : STRIP_UNARY (operands[4]))
17729 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17730 : STRIP_UNARY (operands[3]))
17731 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17732 : STRIP_UNARY (operands[3])))) &&
17733 : #line 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17734 : (TARGET_AVX512F)))
17735 : return -1;
17736 : return 5624; /* *avx512bw_vpternlogv32hi_1 */
17737 :
17738 : case 28:
17739 : if (!(
17740 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17741 : ((32 == 64 || TARGET_AVX512VL
17742 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17743 : && ix86_pre_reload_split ()
17744 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17745 : STRIP_UNARY (operands[4]))
17746 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17747 : STRIP_UNARY (operands[4]))
17748 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17749 : STRIP_UNARY (operands[3]))
17750 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17751 : STRIP_UNARY (operands[3])))) &&
17752 : #line 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17753 : (TARGET_AVX)))
17754 : return -1;
17755 : return 5651; /* *avx512vl_vpternlogv16hi_1 */
17756 :
17757 : case 29:
17758 : if (!
17759 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17760 : ((16 == 64 || TARGET_AVX512VL
17761 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17762 : && ix86_pre_reload_split ()
17763 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17764 : STRIP_UNARY (operands[4]))
17765 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17766 : STRIP_UNARY (operands[4]))
17767 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17768 : STRIP_UNARY (operands[3]))
17769 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17770 : STRIP_UNARY (operands[3])))))
17771 : return -1;
17772 : return 5678; /* *avx512vl_vpternlogv8hi_1 */
17773 :
17774 : case 30:
17775 : if (!(
17776 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17777 : ((64 == 64 || TARGET_AVX512VL
17778 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17779 : && ix86_pre_reload_split ()
17780 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17781 : STRIP_UNARY (operands[4]))
17782 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17783 : STRIP_UNARY (operands[4]))
17784 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17785 : STRIP_UNARY (operands[3]))
17786 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17787 : STRIP_UNARY (operands[3])))) &&
17788 : #line 347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17789 : (TARGET_AVX512F)))
17790 : return -1;
17791 : return 5705; /* *avx512f_vpternlogv16si_1 */
17792 :
17793 : case 31:
17794 : if (!(
17795 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17796 : ((32 == 64 || TARGET_AVX512VL
17797 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17798 : && ix86_pre_reload_split ()
17799 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17800 : STRIP_UNARY (operands[4]))
17801 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17802 : STRIP_UNARY (operands[4]))
17803 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17804 : STRIP_UNARY (operands[3]))
17805 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17806 : STRIP_UNARY (operands[3])))) &&
17807 : #line 347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17808 : (TARGET_AVX)))
17809 : return -1;
17810 : return 5732; /* *avx512vl_vpternlogv8si_1 */
17811 :
17812 : case 32:
17813 : if (!
17814 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17815 : ((16 == 64 || TARGET_AVX512VL
17816 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17817 : && ix86_pre_reload_split ()
17818 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17819 : STRIP_UNARY (operands[4]))
17820 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17821 : STRIP_UNARY (operands[4]))
17822 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17823 : STRIP_UNARY (operands[3]))
17824 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17825 : STRIP_UNARY (operands[3])))))
17826 : return -1;
17827 : return 5759; /* *avx512vl_vpternlogv4si_1 */
17828 :
17829 : case 33:
17830 : if (!(
17831 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17832 : ((64 == 64 || TARGET_AVX512VL
17833 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17834 : && ix86_pre_reload_split ()
17835 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17836 : STRIP_UNARY (operands[4]))
17837 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17838 : STRIP_UNARY (operands[4]))
17839 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17840 : STRIP_UNARY (operands[3]))
17841 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17842 : STRIP_UNARY (operands[3])))) &&
17843 : #line 348 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17844 : (TARGET_AVX512F)))
17845 : return -1;
17846 : return 5786; /* *avx512f_vpternlogv8di_1 */
17847 :
17848 : case 34:
17849 : if (!(
17850 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17851 : ((32 == 64 || TARGET_AVX512VL
17852 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17853 : && ix86_pre_reload_split ()
17854 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17855 : STRIP_UNARY (operands[4]))
17856 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17857 : STRIP_UNARY (operands[4]))
17858 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17859 : STRIP_UNARY (operands[3]))
17860 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17861 : STRIP_UNARY (operands[3])))) &&
17862 : #line 348 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17863 : (TARGET_AVX)))
17864 : return -1;
17865 : return 5813; /* *avx512vl_vpternlogv4di_1 */
17866 :
17867 : case 35:
17868 : if (!
17869 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17870 : ((16 == 64 || TARGET_AVX512VL
17871 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17872 : && ix86_pre_reload_split ()
17873 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17874 : STRIP_UNARY (operands[4]))
17875 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17876 : STRIP_UNARY (operands[4]))
17877 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17878 : STRIP_UNARY (operands[3]))
17879 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17880 : STRIP_UNARY (operands[3])))))
17881 : return -1;
17882 : return 5840; /* *avx512vl_vpternlogv2di_1 */
17883 :
17884 : case 36:
17885 : if (!(
17886 : #line 14271 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17887 : ((64 == 64 || TARGET_AVX512VL
17888 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17889 : && ix86_pre_reload_split ()) &&
17890 : #line 345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17891 : (TARGET_AVX512F)))
17892 : return -1;
17893 : return 6833; /* *avx512bw_vpternlogv64qi_3 */
17894 :
17895 : case 37:
17896 : if (!(
17897 : #line 14271 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17898 : ((32 == 64 || TARGET_AVX512VL
17899 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17900 : && ix86_pre_reload_split ()) &&
17901 : #line 345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17902 : (TARGET_AVX)))
17903 : return -1;
17904 : return 6842; /* *avx512vl_vpternlogv32qi_3 */
17905 :
17906 : case 38:
17907 : if (!
17908 : #line 14271 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17909 : ((16 == 64 || TARGET_AVX512VL
17910 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17911 : && ix86_pre_reload_split ()))
17912 : return -1;
17913 : return 6851; /* *avx512vl_vpternlogv16qi_3 */
17914 :
17915 : case 39:
17916 : if (!(
17917 : #line 14271 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17918 : ((64 == 64 || TARGET_AVX512VL
17919 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17920 : && ix86_pre_reload_split ()) &&
17921 : #line 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17922 : (TARGET_AVX512F)))
17923 : return -1;
17924 : return 6860; /* *avx512bw_vpternlogv32hi_3 */
17925 :
17926 : case 40:
17927 : if (!(
17928 : #line 14271 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17929 : ((32 == 64 || TARGET_AVX512VL
17930 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17931 : && ix86_pre_reload_split ()) &&
17932 : #line 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17933 : (TARGET_AVX)))
17934 : return -1;
17935 : return 6869; /* *avx512vl_vpternlogv16hi_3 */
17936 :
17937 : case 41:
17938 : if (!
17939 : #line 14271 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17940 : ((16 == 64 || TARGET_AVX512VL
17941 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17942 : && ix86_pre_reload_split ()))
17943 : return -1;
17944 : return 6878; /* *avx512vl_vpternlogv8hi_3 */
17945 :
17946 : case 42:
17947 : if (!(
17948 : #line 14271 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17949 : ((64 == 64 || TARGET_AVX512VL
17950 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17951 : && ix86_pre_reload_split ()) &&
17952 : #line 347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17953 : (TARGET_AVX512F)))
17954 : return -1;
17955 : return 6887; /* *avx512f_vpternlogv16si_3 */
17956 :
17957 : case 43:
17958 : if (!(
17959 : #line 14271 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17960 : ((32 == 64 || TARGET_AVX512VL
17961 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17962 : && ix86_pre_reload_split ()) &&
17963 : #line 347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17964 : (TARGET_AVX)))
17965 : return -1;
17966 : return 6896; /* *avx512vl_vpternlogv8si_3 */
17967 :
17968 : case 44:
17969 : if (!
17970 : #line 14271 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17971 : ((16 == 64 || TARGET_AVX512VL
17972 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17973 : && ix86_pre_reload_split ()))
17974 : return -1;
17975 : return 6905; /* *avx512vl_vpternlogv4si_3 */
17976 :
17977 : case 45:
17978 : if (!(
17979 : #line 14271 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17980 : ((64 == 64 || TARGET_AVX512VL
17981 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17982 : && ix86_pre_reload_split ()) &&
17983 : #line 348 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17984 : (TARGET_AVX512F)))
17985 : return -1;
17986 : return 6914; /* *avx512f_vpternlogv8di_3 */
17987 :
17988 : case 46:
17989 : if (!(
17990 : #line 14271 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17991 : ((32 == 64 || TARGET_AVX512VL
17992 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17993 : && ix86_pre_reload_split ()) &&
17994 : #line 348 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17995 : (TARGET_AVX)))
17996 : return -1;
17997 : return 6923; /* *avx512vl_vpternlogv4di_3 */
17998 :
17999 : case 47:
18000 : if (!
18001 : #line 14271 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18002 : ((16 == 64 || TARGET_AVX512VL
18003 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18004 : && ix86_pre_reload_split ()))
18005 : return -1;
18006 : return 6932; /* *avx512vl_vpternlogv2di_3 */
18007 :
18008 : default:
18009 : return -1;
18010 : }
18011 :
18012 : case AND:
18013 : switch (pattern537 (x2))
18014 : {
18015 : case 0:
18016 : if (!(
18017 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18018 : ((64 == 64 || TARGET_AVX512VL
18019 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18020 : && ix86_pre_reload_split ()
18021 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18022 : STRIP_UNARY (operands[4]))
18023 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18024 : STRIP_UNARY (operands[4]))
18025 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18026 : STRIP_UNARY (operands[3]))
18027 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18028 : STRIP_UNARY (operands[3])))) &&
18029 : #line 345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18030 : (TARGET_AVX512F)))
18031 : return -1;
18032 : return 6185; /* *avx512bw_vpternlogv64qi_2 */
18033 :
18034 : case 1:
18035 : if (!(
18036 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18037 : ((32 == 64 || TARGET_AVX512VL
18038 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18039 : && ix86_pre_reload_split ()
18040 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18041 : STRIP_UNARY (operands[4]))
18042 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18043 : STRIP_UNARY (operands[4]))
18044 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18045 : STRIP_UNARY (operands[3]))
18046 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18047 : STRIP_UNARY (operands[3])))) &&
18048 : #line 345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18049 : (TARGET_AVX)))
18050 : return -1;
18051 : return 6212; /* *avx512vl_vpternlogv32qi_2 */
18052 :
18053 : case 2:
18054 : if (!
18055 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18056 : ((16 == 64 || TARGET_AVX512VL
18057 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18058 : && ix86_pre_reload_split ()
18059 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18060 : STRIP_UNARY (operands[4]))
18061 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18062 : STRIP_UNARY (operands[4]))
18063 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18064 : STRIP_UNARY (operands[3]))
18065 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18066 : STRIP_UNARY (operands[3])))))
18067 : return -1;
18068 : return 6239; /* *avx512vl_vpternlogv16qi_2 */
18069 :
18070 : case 3:
18071 : if (!(
18072 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18073 : ((64 == 64 || TARGET_AVX512VL
18074 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18075 : && ix86_pre_reload_split ()
18076 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18077 : STRIP_UNARY (operands[4]))
18078 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18079 : STRIP_UNARY (operands[4]))
18080 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18081 : STRIP_UNARY (operands[3]))
18082 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18083 : STRIP_UNARY (operands[3])))) &&
18084 : #line 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18085 : (TARGET_AVX512F)))
18086 : return -1;
18087 : return 6266; /* *avx512bw_vpternlogv32hi_2 */
18088 :
18089 : case 4:
18090 : if (!(
18091 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18092 : ((32 == 64 || TARGET_AVX512VL
18093 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18094 : && ix86_pre_reload_split ()
18095 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18096 : STRIP_UNARY (operands[4]))
18097 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18098 : STRIP_UNARY (operands[4]))
18099 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18100 : STRIP_UNARY (operands[3]))
18101 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18102 : STRIP_UNARY (operands[3])))) &&
18103 : #line 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18104 : (TARGET_AVX)))
18105 : return -1;
18106 : return 6293; /* *avx512vl_vpternlogv16hi_2 */
18107 :
18108 : case 5:
18109 : if (!
18110 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18111 : ((16 == 64 || TARGET_AVX512VL
18112 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18113 : && ix86_pre_reload_split ()
18114 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18115 : STRIP_UNARY (operands[4]))
18116 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18117 : STRIP_UNARY (operands[4]))
18118 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18119 : STRIP_UNARY (operands[3]))
18120 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18121 : STRIP_UNARY (operands[3])))))
18122 : return -1;
18123 : return 6320; /* *avx512vl_vpternlogv8hi_2 */
18124 :
18125 : case 6:
18126 : if (!(
18127 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18128 : ((64 == 64 || TARGET_AVX512VL
18129 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18130 : && ix86_pre_reload_split ()
18131 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18132 : STRIP_UNARY (operands[4]))
18133 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18134 : STRIP_UNARY (operands[4]))
18135 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18136 : STRIP_UNARY (operands[3]))
18137 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18138 : STRIP_UNARY (operands[3])))) &&
18139 : #line 347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18140 : (TARGET_AVX512F)))
18141 : return -1;
18142 : return 6347; /* *avx512f_vpternlogv16si_2 */
18143 :
18144 : case 7:
18145 : if (!(
18146 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18147 : ((32 == 64 || TARGET_AVX512VL
18148 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18149 : && ix86_pre_reload_split ()
18150 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18151 : STRIP_UNARY (operands[4]))
18152 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18153 : STRIP_UNARY (operands[4]))
18154 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18155 : STRIP_UNARY (operands[3]))
18156 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18157 : STRIP_UNARY (operands[3])))) &&
18158 : #line 347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18159 : (TARGET_AVX)))
18160 : return -1;
18161 : return 6374; /* *avx512vl_vpternlogv8si_2 */
18162 :
18163 : case 8:
18164 : if (!
18165 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18166 : ((16 == 64 || TARGET_AVX512VL
18167 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18168 : && ix86_pre_reload_split ()
18169 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18170 : STRIP_UNARY (operands[4]))
18171 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18172 : STRIP_UNARY (operands[4]))
18173 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18174 : STRIP_UNARY (operands[3]))
18175 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18176 : STRIP_UNARY (operands[3])))))
18177 : return -1;
18178 : return 6401; /* *avx512vl_vpternlogv4si_2 */
18179 :
18180 : case 9:
18181 : if (!(
18182 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18183 : ((64 == 64 || TARGET_AVX512VL
18184 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18185 : && ix86_pre_reload_split ()
18186 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18187 : STRIP_UNARY (operands[4]))
18188 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18189 : STRIP_UNARY (operands[4]))
18190 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18191 : STRIP_UNARY (operands[3]))
18192 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18193 : STRIP_UNARY (operands[3])))) &&
18194 : #line 348 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18195 : (TARGET_AVX512F)))
18196 : return -1;
18197 : return 6428; /* *avx512f_vpternlogv8di_2 */
18198 :
18199 : case 10:
18200 : if (!(
18201 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18202 : ((32 == 64 || TARGET_AVX512VL
18203 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18204 : && ix86_pre_reload_split ()
18205 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18206 : STRIP_UNARY (operands[4]))
18207 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18208 : STRIP_UNARY (operands[4]))
18209 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18210 : STRIP_UNARY (operands[3]))
18211 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18212 : STRIP_UNARY (operands[3])))) &&
18213 : #line 348 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18214 : (TARGET_AVX)))
18215 : return -1;
18216 : return 6455; /* *avx512vl_vpternlogv4di_2 */
18217 :
18218 : case 11:
18219 : if (!
18220 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18221 : ((16 == 64 || TARGET_AVX512VL
18222 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18223 : && ix86_pre_reload_split ()
18224 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18225 : STRIP_UNARY (operands[4]))
18226 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18227 : STRIP_UNARY (operands[4]))
18228 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18229 : STRIP_UNARY (operands[3]))
18230 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18231 : STRIP_UNARY (operands[3])))))
18232 : return -1;
18233 : return 6482; /* *avx512vl_vpternlogv2di_2 */
18234 :
18235 : default:
18236 : return -1;
18237 : }
18238 :
18239 : case IOR:
18240 : switch (pattern537 (x2))
18241 : {
18242 : case 0:
18243 : if (!(
18244 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18245 : ((64 == 64 || TARGET_AVX512VL
18246 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18247 : && ix86_pre_reload_split ()
18248 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18249 : STRIP_UNARY (operands[4]))
18250 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18251 : STRIP_UNARY (operands[4]))
18252 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18253 : STRIP_UNARY (operands[3]))
18254 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18255 : STRIP_UNARY (operands[3])))) &&
18256 : #line 345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18257 : (TARGET_AVX512F)))
18258 : return -1;
18259 : return 6188; /* *avx512bw_vpternlogv64qi_2 */
18260 :
18261 : case 1:
18262 : if (!(
18263 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18264 : ((32 == 64 || TARGET_AVX512VL
18265 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18266 : && ix86_pre_reload_split ()
18267 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18268 : STRIP_UNARY (operands[4]))
18269 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18270 : STRIP_UNARY (operands[4]))
18271 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18272 : STRIP_UNARY (operands[3]))
18273 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18274 : STRIP_UNARY (operands[3])))) &&
18275 : #line 345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18276 : (TARGET_AVX)))
18277 : return -1;
18278 : return 6215; /* *avx512vl_vpternlogv32qi_2 */
18279 :
18280 : case 2:
18281 : if (!
18282 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18283 : ((16 == 64 || TARGET_AVX512VL
18284 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18285 : && ix86_pre_reload_split ()
18286 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18287 : STRIP_UNARY (operands[4]))
18288 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18289 : STRIP_UNARY (operands[4]))
18290 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18291 : STRIP_UNARY (operands[3]))
18292 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18293 : STRIP_UNARY (operands[3])))))
18294 : return -1;
18295 : return 6242; /* *avx512vl_vpternlogv16qi_2 */
18296 :
18297 : case 3:
18298 : if (!(
18299 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18300 : ((64 == 64 || TARGET_AVX512VL
18301 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18302 : && ix86_pre_reload_split ()
18303 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18304 : STRIP_UNARY (operands[4]))
18305 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18306 : STRIP_UNARY (operands[4]))
18307 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18308 : STRIP_UNARY (operands[3]))
18309 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18310 : STRIP_UNARY (operands[3])))) &&
18311 : #line 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18312 : (TARGET_AVX512F)))
18313 : return -1;
18314 : return 6269; /* *avx512bw_vpternlogv32hi_2 */
18315 :
18316 : case 4:
18317 : if (!(
18318 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18319 : ((32 == 64 || TARGET_AVX512VL
18320 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18321 : && ix86_pre_reload_split ()
18322 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18323 : STRIP_UNARY (operands[4]))
18324 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18325 : STRIP_UNARY (operands[4]))
18326 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18327 : STRIP_UNARY (operands[3]))
18328 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18329 : STRIP_UNARY (operands[3])))) &&
18330 : #line 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18331 : (TARGET_AVX)))
18332 : return -1;
18333 : return 6296; /* *avx512vl_vpternlogv16hi_2 */
18334 :
18335 : case 5:
18336 : if (!
18337 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18338 : ((16 == 64 || TARGET_AVX512VL
18339 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18340 : && ix86_pre_reload_split ()
18341 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18342 : STRIP_UNARY (operands[4]))
18343 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18344 : STRIP_UNARY (operands[4]))
18345 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18346 : STRIP_UNARY (operands[3]))
18347 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18348 : STRIP_UNARY (operands[3])))))
18349 : return -1;
18350 : return 6323; /* *avx512vl_vpternlogv8hi_2 */
18351 :
18352 : case 6:
18353 : if (!(
18354 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18355 : ((64 == 64 || TARGET_AVX512VL
18356 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18357 : && ix86_pre_reload_split ()
18358 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18359 : STRIP_UNARY (operands[4]))
18360 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18361 : STRIP_UNARY (operands[4]))
18362 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18363 : STRIP_UNARY (operands[3]))
18364 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18365 : STRIP_UNARY (operands[3])))) &&
18366 : #line 347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18367 : (TARGET_AVX512F)))
18368 : return -1;
18369 : return 6350; /* *avx512f_vpternlogv16si_2 */
18370 :
18371 : case 7:
18372 : if (!(
18373 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18374 : ((32 == 64 || TARGET_AVX512VL
18375 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18376 : && ix86_pre_reload_split ()
18377 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18378 : STRIP_UNARY (operands[4]))
18379 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18380 : STRIP_UNARY (operands[4]))
18381 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18382 : STRIP_UNARY (operands[3]))
18383 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18384 : STRIP_UNARY (operands[3])))) &&
18385 : #line 347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18386 : (TARGET_AVX)))
18387 : return -1;
18388 : return 6377; /* *avx512vl_vpternlogv8si_2 */
18389 :
18390 : case 8:
18391 : if (!
18392 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18393 : ((16 == 64 || TARGET_AVX512VL
18394 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18395 : && ix86_pre_reload_split ()
18396 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18397 : STRIP_UNARY (operands[4]))
18398 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18399 : STRIP_UNARY (operands[4]))
18400 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18401 : STRIP_UNARY (operands[3]))
18402 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18403 : STRIP_UNARY (operands[3])))))
18404 : return -1;
18405 : return 6404; /* *avx512vl_vpternlogv4si_2 */
18406 :
18407 : case 9:
18408 : if (!(
18409 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18410 : ((64 == 64 || TARGET_AVX512VL
18411 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18412 : && ix86_pre_reload_split ()
18413 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18414 : STRIP_UNARY (operands[4]))
18415 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18416 : STRIP_UNARY (operands[4]))
18417 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18418 : STRIP_UNARY (operands[3]))
18419 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18420 : STRIP_UNARY (operands[3])))) &&
18421 : #line 348 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18422 : (TARGET_AVX512F)))
18423 : return -1;
18424 : return 6431; /* *avx512f_vpternlogv8di_2 */
18425 :
18426 : case 10:
18427 : if (!(
18428 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18429 : ((32 == 64 || TARGET_AVX512VL
18430 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18431 : && ix86_pre_reload_split ()
18432 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18433 : STRIP_UNARY (operands[4]))
18434 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18435 : STRIP_UNARY (operands[4]))
18436 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18437 : STRIP_UNARY (operands[3]))
18438 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18439 : STRIP_UNARY (operands[3])))) &&
18440 : #line 348 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18441 : (TARGET_AVX)))
18442 : return -1;
18443 : return 6458; /* *avx512vl_vpternlogv4di_2 */
18444 :
18445 : case 11:
18446 : if (!
18447 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18448 : ((16 == 64 || TARGET_AVX512VL
18449 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18450 : && ix86_pre_reload_split ()
18451 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18452 : STRIP_UNARY (operands[4]))
18453 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18454 : STRIP_UNARY (operands[4]))
18455 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18456 : STRIP_UNARY (operands[3]))
18457 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18458 : STRIP_UNARY (operands[3])))))
18459 : return -1;
18460 : return 6485; /* *avx512vl_vpternlogv2di_2 */
18461 :
18462 : default:
18463 : return -1;
18464 : }
18465 :
18466 : case XOR:
18467 : switch (pattern537 (x2))
18468 : {
18469 : case 0:
18470 : if (!(
18471 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18472 : ((64 == 64 || TARGET_AVX512VL
18473 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18474 : && ix86_pre_reload_split ()
18475 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18476 : STRIP_UNARY (operands[4]))
18477 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18478 : STRIP_UNARY (operands[4]))
18479 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18480 : STRIP_UNARY (operands[3]))
18481 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18482 : STRIP_UNARY (operands[3])))) &&
18483 : #line 345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18484 : (TARGET_AVX512F)))
18485 : return -1;
18486 : return 6191; /* *avx512bw_vpternlogv64qi_2 */
18487 :
18488 : case 1:
18489 : if (!(
18490 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18491 : ((32 == 64 || TARGET_AVX512VL
18492 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18493 : && ix86_pre_reload_split ()
18494 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18495 : STRIP_UNARY (operands[4]))
18496 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18497 : STRIP_UNARY (operands[4]))
18498 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18499 : STRIP_UNARY (operands[3]))
18500 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18501 : STRIP_UNARY (operands[3])))) &&
18502 : #line 345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18503 : (TARGET_AVX)))
18504 : return -1;
18505 : return 6218; /* *avx512vl_vpternlogv32qi_2 */
18506 :
18507 : case 2:
18508 : if (!
18509 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18510 : ((16 == 64 || TARGET_AVX512VL
18511 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18512 : && ix86_pre_reload_split ()
18513 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18514 : STRIP_UNARY (operands[4]))
18515 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18516 : STRIP_UNARY (operands[4]))
18517 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18518 : STRIP_UNARY (operands[3]))
18519 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18520 : STRIP_UNARY (operands[3])))))
18521 : return -1;
18522 : return 6245; /* *avx512vl_vpternlogv16qi_2 */
18523 :
18524 : case 3:
18525 : if (!(
18526 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18527 : ((64 == 64 || TARGET_AVX512VL
18528 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18529 : && ix86_pre_reload_split ()
18530 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18531 : STRIP_UNARY (operands[4]))
18532 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18533 : STRIP_UNARY (operands[4]))
18534 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18535 : STRIP_UNARY (operands[3]))
18536 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18537 : STRIP_UNARY (operands[3])))) &&
18538 : #line 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18539 : (TARGET_AVX512F)))
18540 : return -1;
18541 : return 6272; /* *avx512bw_vpternlogv32hi_2 */
18542 :
18543 : case 4:
18544 : if (!(
18545 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18546 : ((32 == 64 || TARGET_AVX512VL
18547 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18548 : && ix86_pre_reload_split ()
18549 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18550 : STRIP_UNARY (operands[4]))
18551 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18552 : STRIP_UNARY (operands[4]))
18553 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18554 : STRIP_UNARY (operands[3]))
18555 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18556 : STRIP_UNARY (operands[3])))) &&
18557 : #line 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18558 : (TARGET_AVX)))
18559 : return -1;
18560 : return 6299; /* *avx512vl_vpternlogv16hi_2 */
18561 :
18562 : case 5:
18563 : if (!
18564 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18565 : ((16 == 64 || TARGET_AVX512VL
18566 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18567 : && ix86_pre_reload_split ()
18568 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18569 : STRIP_UNARY (operands[4]))
18570 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18571 : STRIP_UNARY (operands[4]))
18572 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18573 : STRIP_UNARY (operands[3]))
18574 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18575 : STRIP_UNARY (operands[3])))))
18576 : return -1;
18577 : return 6326; /* *avx512vl_vpternlogv8hi_2 */
18578 :
18579 : case 6:
18580 : if (!(
18581 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18582 : ((64 == 64 || TARGET_AVX512VL
18583 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18584 : && ix86_pre_reload_split ()
18585 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18586 : STRIP_UNARY (operands[4]))
18587 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18588 : STRIP_UNARY (operands[4]))
18589 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18590 : STRIP_UNARY (operands[3]))
18591 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18592 : STRIP_UNARY (operands[3])))) &&
18593 : #line 347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18594 : (TARGET_AVX512F)))
18595 : return -1;
18596 : return 6353; /* *avx512f_vpternlogv16si_2 */
18597 :
18598 : case 7:
18599 : if (!(
18600 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18601 : ((32 == 64 || TARGET_AVX512VL
18602 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18603 : && ix86_pre_reload_split ()
18604 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18605 : STRIP_UNARY (operands[4]))
18606 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18607 : STRIP_UNARY (operands[4]))
18608 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18609 : STRIP_UNARY (operands[3]))
18610 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18611 : STRIP_UNARY (operands[3])))) &&
18612 : #line 347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18613 : (TARGET_AVX)))
18614 : return -1;
18615 : return 6380; /* *avx512vl_vpternlogv8si_2 */
18616 :
18617 : case 8:
18618 : if (!
18619 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18620 : ((16 == 64 || TARGET_AVX512VL
18621 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18622 : && ix86_pre_reload_split ()
18623 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18624 : STRIP_UNARY (operands[4]))
18625 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18626 : STRIP_UNARY (operands[4]))
18627 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18628 : STRIP_UNARY (operands[3]))
18629 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18630 : STRIP_UNARY (operands[3])))))
18631 : return -1;
18632 : return 6407; /* *avx512vl_vpternlogv4si_2 */
18633 :
18634 : case 9:
18635 : if (!(
18636 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18637 : ((64 == 64 || TARGET_AVX512VL
18638 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18639 : && ix86_pre_reload_split ()
18640 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18641 : STRIP_UNARY (operands[4]))
18642 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18643 : STRIP_UNARY (operands[4]))
18644 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18645 : STRIP_UNARY (operands[3]))
18646 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18647 : STRIP_UNARY (operands[3])))) &&
18648 : #line 348 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18649 : (TARGET_AVX512F)))
18650 : return -1;
18651 : return 6434; /* *avx512f_vpternlogv8di_2 */
18652 :
18653 : case 10:
18654 : if (!(
18655 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18656 : ((32 == 64 || TARGET_AVX512VL
18657 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18658 : && ix86_pre_reload_split ()
18659 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18660 : STRIP_UNARY (operands[4]))
18661 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18662 : STRIP_UNARY (operands[4]))
18663 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18664 : STRIP_UNARY (operands[3]))
18665 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18666 : STRIP_UNARY (operands[3])))) &&
18667 : #line 348 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18668 : (TARGET_AVX)))
18669 : return -1;
18670 : return 6461; /* *avx512vl_vpternlogv4di_2 */
18671 :
18672 : case 11:
18673 : if (!
18674 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18675 : ((16 == 64 || TARGET_AVX512VL
18676 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18677 : && ix86_pre_reload_split ()
18678 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18679 : STRIP_UNARY (operands[4]))
18680 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18681 : STRIP_UNARY (operands[4]))
18682 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18683 : STRIP_UNARY (operands[3]))
18684 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18685 : STRIP_UNARY (operands[3])))))
18686 : return -1;
18687 : return 6488; /* *avx512vl_vpternlogv2di_2 */
18688 :
18689 : default:
18690 : return -1;
18691 : }
18692 :
18693 : default:
18694 : return -1;
18695 : }
18696 :
18697 : case IOR:
18698 : return recog_307 (x1, insn, pnum_clobbers);
18699 :
18700 : case XOR:
18701 : return recog_306 (x1, insn, pnum_clobbers);
18702 :
18703 : default:
18704 : return -1;
18705 : }
18706 : }
18707 :
18708 : int
18709 : recog_324 (rtx x1 ATTRIBUTE_UNUSED,
18710 : rtx_insn *insn ATTRIBUTE_UNUSED,
18711 : int *pnum_clobbers ATTRIBUTE_UNUSED)
18712 : {
18713 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
18714 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
18715 : rtx x10, x11, x12, x13, x14, x15, x16, x17;
18716 : rtx x18, x19, x20, x21, x22, x23, x24, x25;
18717 : rtx x26, x27, x28, x29, x30, x31, x32, x33;
18718 : rtx x34, x35, x36, x37, x38, x39, x40, x41;
18719 : rtx x42, x43, x44, x45, x46, x47;
18720 : int res ATTRIBUTE_UNUSED;
18721 : x2 = XEXP (x1, 0);
18722 : operands[0] = x2;
18723 : x3 = XEXP (x1, 1);
18724 : x4 = XEXP (x3, 0);
18725 : switch (GET_CODE (x4))
18726 : {
18727 : case REG:
18728 : case SUBREG:
18729 : case MEM:
18730 : case VEC_DUPLICATE:
18731 : switch (pattern190 (x3))
18732 : {
18733 : case 0:
18734 : if (!(
18735 : #line 2684 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18736 : (TARGET_SSE && ix86_binary_operator_ok (PLUS, V32HFmode, operands)
18737 : && 1 && 1) &&
18738 : #line 393 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18739 : (TARGET_AVX512FP16)))
18740 : return -1;
18741 : return 2745; /* *addv32hf3 */
18742 :
18743 : case 1:
18744 : if (!(
18745 : #line 2684 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18746 : (TARGET_SSE && ix86_binary_operator_ok (PLUS, V16HFmode, operands)
18747 : && 1 && 1) &&
18748 : #line 394 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18749 : (TARGET_AVX512FP16 && TARGET_AVX512VL)))
18750 : return -1;
18751 : return 2753; /* *addv16hf3 */
18752 :
18753 : case 2:
18754 : if (!(
18755 : #line 2684 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18756 : (TARGET_SSE && ix86_binary_operator_ok (PLUS, V8HFmode, operands)
18757 : && 1 && 1) &&
18758 : #line 395 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18759 : (TARGET_AVX512FP16 && TARGET_AVX512VL)))
18760 : return -1;
18761 : return 2761; /* *addv8hf3 */
18762 :
18763 : case 3:
18764 : if (!(
18765 : #line 2684 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18766 : (TARGET_SSE && ix86_binary_operator_ok (PLUS, V16SFmode, operands)
18767 : && 1 && 1) &&
18768 : #line 396 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18769 : (TARGET_AVX512F)))
18770 : return -1;
18771 : return 2769; /* *addv16sf3 */
18772 :
18773 : case 4:
18774 : if (!(
18775 : #line 2684 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18776 : (TARGET_SSE && ix86_binary_operator_ok (PLUS, V8SFmode, operands)
18777 : && 1 && 1) &&
18778 : #line 396 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18779 : (TARGET_AVX)))
18780 : return -1;
18781 : return 2777; /* *addv8sf3 */
18782 :
18783 : case 5:
18784 : if (!
18785 : #line 2684 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18786 : (TARGET_SSE && ix86_binary_operator_ok (PLUS, V4SFmode, operands)
18787 : && 1 && 1))
18788 : return -1;
18789 : return 2785; /* *addv4sf3 */
18790 :
18791 : case 6:
18792 : if (!(
18793 : #line 2684 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18794 : (TARGET_SSE && ix86_binary_operator_ok (PLUS, V8DFmode, operands)
18795 : && 1 && 1) &&
18796 : #line 397 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18797 : (TARGET_AVX512F)))
18798 : return -1;
18799 : return 2793; /* *addv8df3 */
18800 :
18801 : case 7:
18802 : if (!(
18803 : #line 2684 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18804 : (TARGET_SSE && ix86_binary_operator_ok (PLUS, V4DFmode, operands)
18805 : && 1 && 1) &&
18806 : #line 397 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18807 : (TARGET_AVX)))
18808 : return -1;
18809 : return 2801; /* *addv4df3 */
18810 :
18811 : case 8:
18812 : if (!(
18813 : #line 2684 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18814 : (TARGET_SSE && ix86_binary_operator_ok (PLUS, V2DFmode, operands)
18815 : && 1 && 1) &&
18816 : #line 398 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18817 : (TARGET_SSE2)))
18818 : return -1;
18819 : return 2809; /* *addv2df3 */
18820 :
18821 : case 9:
18822 : if (!(
18823 : #line 16592 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18824 : (TARGET_SSE2 && ix86_binary_operator_ok (PLUS, V64QImode, operands)) &&
18825 : #line 572 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18826 : (TARGET_AVX512BW)))
18827 : return -1;
18828 : return 7498; /* *addv64qi3 */
18829 :
18830 : case 10:
18831 : if (!(
18832 : #line 16592 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18833 : (TARGET_SSE2 && ix86_binary_operator_ok (PLUS, V32QImode, operands)) &&
18834 : #line 572 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18835 : (TARGET_AVX2)))
18836 : return -1;
18837 : return 7500; /* *addv32qi3 */
18838 :
18839 : case 11:
18840 : if (!
18841 : #line 16592 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18842 : (TARGET_SSE2 && ix86_binary_operator_ok (PLUS, V16QImode, operands)))
18843 : return -1;
18844 : return 7502; /* *addv16qi3 */
18845 :
18846 : case 12:
18847 : if (!(
18848 : #line 16592 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18849 : (TARGET_SSE2 && ix86_binary_operator_ok (PLUS, V32HImode, operands)) &&
18850 : #line 573 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18851 : (TARGET_AVX512BW)))
18852 : return -1;
18853 : return 7504; /* *addv32hi3 */
18854 :
18855 : case 13:
18856 : if (!(
18857 : #line 16592 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18858 : (TARGET_SSE2 && ix86_binary_operator_ok (PLUS, V16HImode, operands)) &&
18859 : #line 573 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18860 : (TARGET_AVX2)))
18861 : return -1;
18862 : return 7506; /* *addv16hi3 */
18863 :
18864 : case 14:
18865 : if (!
18866 : #line 16592 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18867 : (TARGET_SSE2 && ix86_binary_operator_ok (PLUS, V8HImode, operands)))
18868 : return -1;
18869 : return 7508; /* *addv8hi3 */
18870 :
18871 : case 15:
18872 : if (!(
18873 : #line 16592 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18874 : (TARGET_SSE2 && ix86_binary_operator_ok (PLUS, V16SImode, operands)) &&
18875 : #line 574 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18876 : (TARGET_AVX512F)))
18877 : return -1;
18878 : return 7510; /* *addv16si3 */
18879 :
18880 : case 16:
18881 : if (!(
18882 : #line 16592 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18883 : (TARGET_SSE2 && ix86_binary_operator_ok (PLUS, V8SImode, operands)) &&
18884 : #line 574 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18885 : (TARGET_AVX2)))
18886 : return -1;
18887 : return 7512; /* *addv8si3 */
18888 :
18889 : case 17:
18890 : if (!
18891 : #line 16592 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18892 : (TARGET_SSE2 && ix86_binary_operator_ok (PLUS, V4SImode, operands)))
18893 : return -1;
18894 : return 7514; /* *addv4si3 */
18895 :
18896 : case 18:
18897 : if (!(
18898 : #line 16592 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18899 : (TARGET_SSE2 && ix86_binary_operator_ok (PLUS, V8DImode, operands)) &&
18900 : #line 575 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18901 : (TARGET_AVX512F)))
18902 : return -1;
18903 : return 7516; /* *addv8di3 */
18904 :
18905 : case 19:
18906 : if (!(
18907 : #line 16592 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18908 : (TARGET_SSE2 && ix86_binary_operator_ok (PLUS, V4DImode, operands)) &&
18909 : #line 575 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18910 : (TARGET_AVX2)))
18911 : return -1;
18912 : return 7518; /* *addv4di3 */
18913 :
18914 : case 20:
18915 : if (!
18916 : #line 16592 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18917 : (TARGET_SSE2 && ix86_binary_operator_ok (PLUS, V2DImode, operands)))
18918 : return -1;
18919 : return 7520; /* *addv2di3 */
18920 :
18921 : case 21:
18922 : if (!
18923 : #line 32831 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18924 : (TARGET_AVX10_2))
18925 : return -1;
18926 : return 10677; /* avx10_2_addbf16_v32bf */
18927 :
18928 : case 22:
18929 : if (!
18930 : #line 32831 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18931 : (TARGET_AVX10_2))
18932 : return -1;
18933 : return 10685; /* avx10_2_addbf16_v16bf */
18934 :
18935 : case 23:
18936 : if (!
18937 : #line 32831 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18938 : (TARGET_AVX10_2))
18939 : return -1;
18940 : return 10693; /* avx10_2_addbf16_v8bf */
18941 :
18942 : default:
18943 : return -1;
18944 : }
18945 :
18946 : case UNSPEC:
18947 : switch (pattern193 (x3))
18948 : {
18949 : case 0:
18950 : if (!
18951 : #line 7521 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18952 : (TARGET_AVX512FP16 && flag_unsafe_math_optimizations
18953 : && ix86_pre_reload_split ()))
18954 : return -1;
18955 : return 4377; /* fma_v32hf_fadd_fmul */
18956 :
18957 : case 1:
18958 : if (!(
18959 : #line 7521 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18960 : (TARGET_AVX512FP16 && flag_unsafe_math_optimizations
18961 : && ix86_pre_reload_split ()) &&
18962 : #line 545 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18963 : (TARGET_AVX512VL)))
18964 : return -1;
18965 : return 4378; /* fma_v16hf_fadd_fmul */
18966 :
18967 : case 2:
18968 : if (!(
18969 : #line 7521 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18970 : (TARGET_AVX512FP16 && flag_unsafe_math_optimizations
18971 : && ix86_pre_reload_split ()) &&
18972 : #line 545 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18973 : (TARGET_AVX512VL)))
18974 : return -1;
18975 : return 4379; /* fma_v8hf_fadd_fmul */
18976 :
18977 : case 3:
18978 : if (!
18979 : #line 7538 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18980 : (TARGET_AVX512FP16 && flag_unsafe_math_optimizations
18981 : && ix86_pre_reload_split ()))
18982 : return -1;
18983 : return 4380; /* fma_v32hf_fadd_fcmul */
18984 :
18985 : case 4:
18986 : if (!(
18987 : #line 7538 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18988 : (TARGET_AVX512FP16 && flag_unsafe_math_optimizations
18989 : && ix86_pre_reload_split ()) &&
18990 : #line 545 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18991 : (TARGET_AVX512VL)))
18992 : return -1;
18993 : return 4381; /* fma_v16hf_fadd_fcmul */
18994 :
18995 : case 5:
18996 : if (!(
18997 : #line 7538 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18998 : (TARGET_AVX512FP16 && flag_unsafe_math_optimizations
18999 : && ix86_pre_reload_split ()) &&
19000 : #line 545 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19001 : (TARGET_AVX512VL)))
19002 : return -1;
19003 : return 4382; /* fma_v8hf_fadd_fcmul */
19004 :
19005 : case 6:
19006 : if (!
19007 : #line 7556 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19008 : (TARGET_AVX512FP16 && flag_unsafe_math_optimizations
19009 : && ix86_pre_reload_split ()))
19010 : return -1;
19011 : return 4383; /* fma_fmaddc_v32hf_fma_zero */
19012 :
19013 : case 7:
19014 : if (!(
19015 : #line 7556 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19016 : (TARGET_AVX512FP16 && flag_unsafe_math_optimizations
19017 : && ix86_pre_reload_split ()) &&
19018 : #line 545 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19019 : (TARGET_AVX512VL)))
19020 : return -1;
19021 : return 4385; /* fma_fmaddc_v16hf_fma_zero */
19022 :
19023 : case 8:
19024 : if (!(
19025 : #line 7556 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19026 : (TARGET_AVX512FP16 && flag_unsafe_math_optimizations
19027 : && ix86_pre_reload_split ()) &&
19028 : #line 545 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19029 : (TARGET_AVX512VL)))
19030 : return -1;
19031 : return 4387; /* fma_fmaddc_v8hf_fma_zero */
19032 :
19033 : case 9:
19034 : if (!
19035 : #line 7556 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19036 : (TARGET_AVX512FP16 && flag_unsafe_math_optimizations
19037 : && ix86_pre_reload_split ()))
19038 : return -1;
19039 : return 4384; /* fma_fcmaddc_v32hf_fma_zero */
19040 :
19041 : case 10:
19042 : if (!(
19043 : #line 7556 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19044 : (TARGET_AVX512FP16 && flag_unsafe_math_optimizations
19045 : && ix86_pre_reload_split ()) &&
19046 : #line 545 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19047 : (TARGET_AVX512VL)))
19048 : return -1;
19049 : return 4386; /* fma_fcmaddc_v16hf_fma_zero */
19050 :
19051 : case 11:
19052 : if (!(
19053 : #line 7556 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19054 : (TARGET_AVX512FP16 && flag_unsafe_math_optimizations
19055 : && ix86_pre_reload_split ()) &&
19056 : #line 545 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19057 : (TARGET_AVX512VL)))
19058 : return -1;
19059 : return 4388; /* fma_fcmaddc_v8hf_fma_zero */
19060 :
19061 : default:
19062 : return -1;
19063 : }
19064 :
19065 : case MULT:
19066 : x5 = XEXP (x4, 0);
19067 : switch (GET_CODE (x5))
19068 : {
19069 : case SIGN_EXTEND:
19070 : if (pattern332 (x4) != 0)
19071 : return -1;
19072 : x6 = XEXP (x5, 0);
19073 : x7 = XEXP (x6, 1);
19074 : switch (XVECLEN (x7, 0))
19075 : {
19076 : case 8:
19077 : if (pattern1321 (x4) != 0)
19078 : return -1;
19079 : x8 = XEXP (x3, 1);
19080 : if (GET_CODE (x8) != MULT
19081 : || GET_MODE (x8) != E_V8SImode)
19082 : return -1;
19083 : x9 = XEXP (x8, 0);
19084 : if (GET_CODE (x9) != SIGN_EXTEND
19085 : || GET_MODE (x9) != E_V8SImode)
19086 : return -1;
19087 : x10 = XEXP (x9, 0);
19088 : if (GET_CODE (x10) != VEC_SELECT
19089 : || GET_MODE (x10) != E_V8HImode)
19090 : return -1;
19091 : x11 = XEXP (x10, 1);
19092 : if (GET_CODE (x11) != PARALLEL
19093 : || pattern1894 (x11,
19094 : 8) != 0)
19095 : return -1;
19096 : x12 = XEXP (x8, 1);
19097 : if (pattern1874 (x12,
19098 : E_V8HImode,
19099 : E_V8SImode) != 0)
19100 : return -1;
19101 : x13 = XEXP (x12, 0);
19102 : x14 = XEXP (x13, 1);
19103 : if (pattern1911 (x14,
19104 : 8) != 0
19105 : || !register_operand (operands[0], E_V8SImode)
19106 : || GET_MODE (x3) != E_V8SImode
19107 : || GET_MODE (x4) != E_V8SImode
19108 : || GET_MODE (x5) != E_V8SImode
19109 : || GET_MODE (x6) != E_V8HImode
19110 : || !nonimmediate_operand (operands[1], E_V16HImode))
19111 : return -1;
19112 : x15 = XEXP (x4, 1);
19113 : if (GET_MODE (x15) != E_V8SImode)
19114 : return -1;
19115 : x16 = XEXP (x15, 0);
19116 : if (GET_MODE (x16) != E_V8HImode
19117 : || !nonimmediate_operand (operands[2], E_V16HImode))
19118 : return -1;
19119 : x17 = XEXP (x10, 0);
19120 : if (!rtx_equal_p (x17, operands[1]))
19121 : return -1;
19122 : x18 = XEXP (x13, 0);
19123 : if (!rtx_equal_p (x18, operands[2])
19124 : || !
19125 : #line 17067 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19126 : (TARGET_AVX2 && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
19127 : return -1;
19128 : return 7630; /* *avx2_pmaddwd */
19129 :
19130 : case 4:
19131 : x19 = XVECEXP (x7, 0, 0);
19132 : if (GET_CODE (x19) != CONST_INT)
19133 : return -1;
19134 : x20 = XVECEXP (x7, 0, 1);
19135 : if (GET_CODE (x20) != CONST_INT)
19136 : return -1;
19137 : x21 = XVECEXP (x7, 0, 2);
19138 : if (GET_CODE (x21) != CONST_INT)
19139 : return -1;
19140 : x22 = XVECEXP (x7, 0, 3);
19141 : if (GET_CODE (x22) != CONST_INT)
19142 : return -1;
19143 : x15 = XEXP (x4, 1);
19144 : x16 = XEXP (x15, 0);
19145 : x23 = XEXP (x16, 1);
19146 : if (XVECLEN (x23, 0) != 4)
19147 : return -1;
19148 : x24 = XVECEXP (x23, 0, 0);
19149 : if (GET_CODE (x24) != CONST_INT)
19150 : return -1;
19151 : x25 = XVECEXP (x23, 0, 1);
19152 : if (GET_CODE (x25) != CONST_INT)
19153 : return -1;
19154 : x26 = XVECEXP (x23, 0, 2);
19155 : if (GET_CODE (x26) != CONST_INT)
19156 : return -1;
19157 : x27 = XVECEXP (x23, 0, 3);
19158 : if (GET_CODE (x27) != CONST_INT
19159 : || pattern893 (x3,
19160 : E_V4HImode,
19161 : E_V4SImode) != 0
19162 : || GET_MODE (x15) != E_V4SImode
19163 : || GET_MODE (x16) != E_V4HImode)
19164 : return -1;
19165 : switch (XWINT (x19, 0))
19166 : {
19167 : case 0L:
19168 : if (XWINT (x20, 0) != 2L
19169 : || XWINT (x21, 0) != 4L
19170 : || XWINT (x22, 0) != 6L
19171 : || XWINT (x24, 0) != 0L
19172 : || XWINT (x25, 0) != 2L
19173 : || XWINT (x26, 0) != 4L
19174 : || XWINT (x27, 0) != 6L)
19175 : return -1;
19176 : x8 = XEXP (x3, 1);
19177 : if (pattern1808 (x8,
19178 : E_V4HImode,
19179 : E_V4SImode,
19180 : SIGN_EXTEND) != 0
19181 : || !vector_operand (operands[1], E_V8HImode)
19182 : || !vector_operand (operands[2], E_V8HImode))
19183 : return -1;
19184 : x9 = XEXP (x8, 0);
19185 : x10 = XEXP (x9, 0);
19186 : x17 = XEXP (x10, 0);
19187 : if (!rtx_equal_p (x17, operands[1]))
19188 : return -1;
19189 : x12 = XEXP (x8, 1);
19190 : x13 = XEXP (x12, 0);
19191 : x18 = XEXP (x13, 0);
19192 : if (!rtx_equal_p (x18, operands[2])
19193 : || !
19194 : #line 17122 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19195 : (TARGET_SSE2 && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
19196 : return -1;
19197 : return 7631; /* *sse2_pmaddwd */
19198 :
19199 : case 1L:
19200 : if (XWINT (x20, 0) != 3L
19201 : || XWINT (x21, 0) != 5L
19202 : || XWINT (x22, 0) != 7L
19203 : || XWINT (x24, 0) != 1L
19204 : || XWINT (x25, 0) != 3L
19205 : || XWINT (x26, 0) != 5L
19206 : || XWINT (x27, 0) != 7L
19207 : || !nonimmediate_operand (operands[1], E_V8HImode)
19208 : || !nonimmediate_operand (operands[2], E_V8HImode))
19209 : return -1;
19210 : x8 = XEXP (x3, 1);
19211 : operands[3] = x8;
19212 : if (!register_operand (operands[3], E_V4SImode)
19213 : || !
19214 : #line 26782 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19215 : (TARGET_XOP))
19216 : return -1;
19217 : return 9047; /* xop_pmacswd */
19218 :
19219 : default:
19220 : return -1;
19221 : }
19222 :
19223 : case 2:
19224 : if (pattern1322 (x3) != 0)
19225 : return -1;
19226 : x15 = XEXP (x4, 1);
19227 : if (GET_MODE (x15) != E_V2DImode)
19228 : return -1;
19229 : x16 = XEXP (x15, 0);
19230 : if (GET_MODE (x16) != E_V2SImode
19231 : || !nonimmediate_operand (operands[2], E_V4SImode))
19232 : return -1;
19233 : x8 = XEXP (x3, 1);
19234 : operands[3] = x8;
19235 : switch (pattern1858 (x4))
19236 : {
19237 : case 0:
19238 : if (!
19239 : #line 26741 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19240 : (TARGET_XOP))
19241 : return -1;
19242 : return 9043; /* xop_pmacsdql */
19243 :
19244 : case 1:
19245 : if (!
19246 : #line 26760 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19247 : (TARGET_XOP))
19248 : return -1;
19249 : return 9045; /* xop_pmacsdqh */
19250 :
19251 : default:
19252 : return -1;
19253 : }
19254 :
19255 : default:
19256 : return -1;
19257 : }
19258 :
19259 : case REG:
19260 : case SUBREG:
19261 : case MEM:
19262 : switch (pattern334 (x3))
19263 : {
19264 : case 0:
19265 : if (!
19266 : #line 26722 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19267 : (TARGET_XOP))
19268 : return -1;
19269 : return 9039; /* xop_pmacsww */
19270 :
19271 : case 1:
19272 : if (!
19273 : #line 26722 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19274 : (TARGET_XOP))
19275 : return -1;
19276 : return 9041; /* xop_pmacsdd */
19277 :
19278 : default:
19279 : return -1;
19280 : }
19281 :
19282 : default:
19283 : return -1;
19284 : }
19285 :
19286 : case VEC_SELECT:
19287 : switch (pattern197 (x3))
19288 : {
19289 : case 0:
19290 : if (!
19291 : #line 22922 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19292 : (TARGET_AVX2))
19293 : return -1;
19294 : return 8631; /* avx2_phaddwv16hi3 */
19295 :
19296 : case 1:
19297 : if (!
19298 : #line 22945 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19299 : (TARGET_SSSE3))
19300 : return -1;
19301 : return 8635; /* ssse3_phaddwv8hi3 */
19302 :
19303 : case 2:
19304 : if (!
19305 : #line 23012 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19306 : (TARGET_AVX2))
19307 : return -1;
19308 : return 8643; /* avx2_phadddv8si3 */
19309 :
19310 : case 3:
19311 : if (!
19312 : #line 23033 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19313 : (TARGET_SSSE3))
19314 : return -1;
19315 : return 8645; /* ssse3_phadddv4si3 */
19316 :
19317 : default:
19318 : return -1;
19319 : }
19320 :
19321 : case PLUS:
19322 : x5 = XEXP (x4, 0);
19323 : switch (GET_CODE (x5))
19324 : {
19325 : case MULT:
19326 : if (pattern335 (x5) != 0)
19327 : return -1;
19328 : x28 = XEXP (x5, 1);
19329 : if (GET_MODE (x28) != E_V4SImode)
19330 : return -1;
19331 : x29 = XEXP (x28, 0);
19332 : if (GET_CODE (x29) != VEC_SELECT
19333 : || GET_MODE (x29) != E_V4HImode)
19334 : return -1;
19335 : x30 = XEXP (x29, 1);
19336 : if (GET_CODE (x30) != PARALLEL
19337 : || XVECLEN (x30, 0) != 4)
19338 : return -1;
19339 : x31 = XVECEXP (x30, 0, 0);
19340 : if (x31 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
19341 : return -1;
19342 : x32 = XVECEXP (x30, 0, 1);
19343 : if (x32 != const_int_rtx[MAX_SAVED_CONST_INT + 2])
19344 : return -1;
19345 : x33 = XVECEXP (x30, 0, 2);
19346 : if (x33 != const_int_rtx[MAX_SAVED_CONST_INT + 4])
19347 : return -1;
19348 : x34 = XVECEXP (x30, 0, 3);
19349 : if (x34 != const_int_rtx[MAX_SAVED_CONST_INT + 6])
19350 : return -1;
19351 : x15 = XEXP (x4, 1);
19352 : if (GET_CODE (x15) != MULT
19353 : || GET_MODE (x15) != E_V4SImode)
19354 : return -1;
19355 : x16 = XEXP (x15, 0);
19356 : if (GET_CODE (x16) != SIGN_EXTEND
19357 : || GET_MODE (x16) != E_V4SImode)
19358 : return -1;
19359 : x35 = XEXP (x16, 0);
19360 : if (GET_CODE (x35) != VEC_SELECT
19361 : || GET_MODE (x35) != E_V4HImode)
19362 : return -1;
19363 : x36 = XEXP (x35, 1);
19364 : if (GET_CODE (x36) != PARALLEL
19365 : || XVECLEN (x36, 0) != 4)
19366 : return -1;
19367 : x37 = XVECEXP (x36, 0, 0);
19368 : if (x37 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
19369 : return -1;
19370 : x38 = XVECEXP (x36, 0, 1);
19371 : if (x38 != const_int_rtx[MAX_SAVED_CONST_INT + 3])
19372 : return -1;
19373 : x39 = XVECEXP (x36, 0, 2);
19374 : if (x39 != const_int_rtx[MAX_SAVED_CONST_INT + 5])
19375 : return -1;
19376 : x40 = XVECEXP (x36, 0, 3);
19377 : if (x40 != const_int_rtx[MAX_SAVED_CONST_INT + 7])
19378 : return -1;
19379 : x41 = XEXP (x15, 1);
19380 : if (GET_CODE (x41) != SIGN_EXTEND
19381 : || GET_MODE (x41) != E_V4SImode)
19382 : return -1;
19383 : x42 = XEXP (x41, 0);
19384 : if (GET_CODE (x42) != VEC_SELECT
19385 : || GET_MODE (x42) != E_V4HImode)
19386 : return -1;
19387 : x43 = XEXP (x42, 1);
19388 : if (GET_CODE (x43) != PARALLEL
19389 : || XVECLEN (x43, 0) != 4)
19390 : return -1;
19391 : x44 = XVECEXP (x43, 0, 0);
19392 : if (x44 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
19393 : return -1;
19394 : x45 = XVECEXP (x43, 0, 1);
19395 : if (x45 != const_int_rtx[MAX_SAVED_CONST_INT + 3])
19396 : return -1;
19397 : x46 = XVECEXP (x43, 0, 2);
19398 : if (x46 != const_int_rtx[MAX_SAVED_CONST_INT + 5])
19399 : return -1;
19400 : x47 = XVECEXP (x43, 0, 3);
19401 : if (x47 != const_int_rtx[MAX_SAVED_CONST_INT + 7]
19402 : || !register_operand (operands[0], E_V4SImode)
19403 : || GET_MODE (x3) != E_V4SImode
19404 : || GET_MODE (x4) != E_V4SImode
19405 : || pattern1914 (x3) != 0
19406 : || !
19407 : #line 26815 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19408 : (TARGET_XOP))
19409 : return -1;
19410 : return 9049; /* xop_pmadcswd */
19411 :
19412 : case SIGN_EXTEND:
19413 : switch (pattern338 (x3,
19414 : SIGN_EXTEND))
19415 : {
19416 : case 0:
19417 : if (!
19418 : #line 26909 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19419 : (TARGET_XOP))
19420 : return -1;
19421 : return 9069; /* xop_phaddbd */
19422 :
19423 : case 1:
19424 : if (!
19425 : #line 27005 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19426 : (TARGET_XOP))
19427 : return -1;
19428 : return 9075; /* xop_phaddwq */
19429 :
19430 : default:
19431 : return -1;
19432 : }
19433 :
19434 : case ZERO_EXTEND:
19435 : switch (pattern338 (x3,
19436 : ZERO_EXTEND))
19437 : {
19438 : case 0:
19439 : if (!
19440 : #line 26909 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19441 : (TARGET_XOP))
19442 : return -1;
19443 : return 9070; /* xop_phaddubd */
19444 :
19445 : case 1:
19446 : if (!
19447 : #line 27005 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19448 : (TARGET_XOP))
19449 : return -1;
19450 : return 9076; /* xop_phadduwq */
19451 :
19452 : default:
19453 : return -1;
19454 : }
19455 :
19456 : case PLUS:
19457 : if (GET_MODE (x5) != E_V2DImode)
19458 : return -1;
19459 : x15 = XEXP (x4, 1);
19460 : if (GET_CODE (x15) != PLUS
19461 : || GET_MODE (x15) != E_V2DImode)
19462 : return -1;
19463 : x8 = XEXP (x3, 1);
19464 : if (GET_CODE (x8) != PLUS
19465 : || GET_MODE (x8) != E_V2DImode
19466 : || pattern1040 (x8,
19467 : E_V2DImode,
19468 : PLUS) != 0
19469 : || !register_operand (operands[0], E_V2DImode)
19470 : || GET_MODE (x3) != E_V2DImode
19471 : || GET_MODE (x4) != E_V2DImode
19472 : || pattern1564 (x3,
19473 : E_V2DImode) != 0)
19474 : return -1;
19475 : x6 = XEXP (x5, 0);
19476 : switch (GET_CODE (x6))
19477 : {
19478 : case SIGN_EXTEND:
19479 : if (pattern1845 (x3,
19480 : SIGN_EXTEND) != 0
19481 : || !
19482 : #line 26957 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19483 : (TARGET_XOP))
19484 : return -1;
19485 : return 9071; /* xop_phaddbq */
19486 :
19487 : case ZERO_EXTEND:
19488 : if (pattern1845 (x3,
19489 : ZERO_EXTEND) != 0
19490 : || !
19491 : #line 26957 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19492 : (TARGET_XOP))
19493 : return -1;
19494 : return 9072; /* xop_phaddubq */
19495 :
19496 : default:
19497 : return -1;
19498 : }
19499 :
19500 : default:
19501 : return -1;
19502 : }
19503 :
19504 : case SIGN_EXTEND:
19505 : switch (pattern199 (x3,
19506 : SIGN_EXTEND))
19507 : {
19508 : case 0:
19509 : if (!
19510 : #line 26877 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19511 : (TARGET_XOP))
19512 : return -1;
19513 : return 9067; /* xop_phaddbw */
19514 :
19515 : case 1:
19516 : if (!
19517 : #line 26977 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19518 : (TARGET_XOP))
19519 : return -1;
19520 : return 9073; /* xop_phaddwd */
19521 :
19522 : case 2:
19523 : if (!
19524 : #line 27023 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19525 : (TARGET_XOP))
19526 : return -1;
19527 : return 9077; /* xop_phadddq */
19528 :
19529 : default:
19530 : return -1;
19531 : }
19532 :
19533 : case ZERO_EXTEND:
19534 : switch (pattern199 (x3,
19535 : ZERO_EXTEND))
19536 : {
19537 : case 0:
19538 : if (!
19539 : #line 26877 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19540 : (TARGET_XOP))
19541 : return -1;
19542 : return 9068; /* xop_phaddubw */
19543 :
19544 : case 1:
19545 : if (!
19546 : #line 26977 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19547 : (TARGET_XOP))
19548 : return -1;
19549 : return 9074; /* xop_phadduwd */
19550 :
19551 : case 2:
19552 : if (!
19553 : #line 27023 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19554 : (TARGET_XOP))
19555 : return -1;
19556 : return 9078; /* xop_phaddudq */
19557 :
19558 : default:
19559 : return -1;
19560 : }
19561 :
19562 : default:
19563 : return -1;
19564 : }
19565 : }
19566 :
19567 : int
19568 : recog_328 (rtx x1 ATTRIBUTE_UNUSED,
19569 : rtx_insn *insn ATTRIBUTE_UNUSED,
19570 : int *pnum_clobbers ATTRIBUTE_UNUSED)
19571 : {
19572 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
19573 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
19574 : rtx x10, x11, x12, x13, x14, x15, x16, x17;
19575 : rtx x18, x19, x20, x21, x22, x23, x24, x25;
19576 : rtx x26, x27, x28, x29, x30, x31, x32, x33;
19577 : rtx x34, x35, x36, x37, x38, x39, x40, x41;
19578 : rtx x42, x43, x44, x45, x46, x47, x48, x49;
19579 : rtx x50, x51, x52, x53, x54, x55, x56, x57;
19580 : rtx x58, x59, x60, x61, x62, x63, x64, x65;
19581 : rtx x66, x67, x68, x69, x70, x71, x72, x73;
19582 : rtx x74, x75, x76;
19583 : int res ATTRIBUTE_UNUSED;
19584 : x2 = XEXP (x1, 0);
19585 : operands[0] = x2;
19586 : x3 = XEXP (x1, 1);
19587 : x4 = XEXP (x3, 0);
19588 : switch (GET_CODE (x4))
19589 : {
19590 : case REG:
19591 : case SUBREG:
19592 : case MEM:
19593 : switch (pattern54 (x3))
19594 : {
19595 : case 0:
19596 : if (!(
19597 : #line 16643 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19598 : (TARGET_SSE2 && 1 && 1
19599 : && ix86_binary_operator_ok (SS_PLUS, V64QImode, operands)) &&
19600 : #line 732 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19601 : (TARGET_AVX512BW)))
19602 : return -1;
19603 : return 7546; /* *avx512bw_ssaddv64qi3 */
19604 :
19605 : case 1:
19606 : if (!(
19607 : #line 16643 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19608 : (TARGET_SSE2 && 1 && 1
19609 : && ix86_binary_operator_ok (SS_PLUS, V32QImode, operands)) &&
19610 : #line 732 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19611 : (TARGET_AVX2)))
19612 : return -1;
19613 : return 7554; /* *avx2_ssaddv32qi3 */
19614 :
19615 : case 2:
19616 : if (!
19617 : #line 16643 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19618 : (TARGET_SSE2 && 1 && 1
19619 : && ix86_binary_operator_ok (SS_PLUS, V16QImode, operands)))
19620 : return -1;
19621 : return 7562; /* *sse2_ssaddv16qi3 */
19622 :
19623 : case 3:
19624 : if (!(
19625 : #line 16643 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19626 : (TARGET_SSE2 && 1 && 1
19627 : && ix86_binary_operator_ok (SS_PLUS, V32HImode, operands)) &&
19628 : #line 733 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19629 : (TARGET_AVX512BW)))
19630 : return -1;
19631 : return 7570; /* *avx512bw_ssaddv32hi3 */
19632 :
19633 : case 4:
19634 : if (!(
19635 : #line 16643 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19636 : (TARGET_SSE2 && 1 && 1
19637 : && ix86_binary_operator_ok (SS_PLUS, V16HImode, operands)) &&
19638 : #line 733 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19639 : (TARGET_AVX2)))
19640 : return -1;
19641 : return 7578; /* *avx2_ssaddv16hi3 */
19642 :
19643 : case 5:
19644 : if (!
19645 : #line 16643 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19646 : (TARGET_SSE2 && 1 && 1
19647 : && ix86_binary_operator_ok (SS_PLUS, V8HImode, operands)))
19648 : return -1;
19649 : return 7586; /* *sse2_ssaddv8hi3 */
19650 :
19651 : default:
19652 : return -1;
19653 : }
19654 :
19655 : case VEC_SELECT:
19656 : switch (pattern205 (x3))
19657 : {
19658 : case 0:
19659 : if (!
19660 : #line 22922 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19661 : (TARGET_AVX2))
19662 : return -1;
19663 : return 8632; /* avx2_phaddswv16hi3 */
19664 :
19665 : case 1:
19666 : if (!
19667 : #line 22945 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19668 : (TARGET_SSSE3))
19669 : return -1;
19670 : return 8636; /* ssse3_phaddswv8hi3 */
19671 :
19672 : default:
19673 : return -1;
19674 : }
19675 :
19676 : case MULT:
19677 : x5 = XEXP (x4, 0);
19678 : switch (GET_CODE (x5))
19679 : {
19680 : case ZERO_EXTEND:
19681 : x6 = XEXP (x5, 0);
19682 : if (GET_CODE (x6) != VEC_SELECT)
19683 : return -1;
19684 : x7 = XEXP (x6, 1);
19685 : if (GET_CODE (x7) != PARALLEL)
19686 : return -1;
19687 : x8 = XEXP (x4, 1);
19688 : if (GET_CODE (x8) != SIGN_EXTEND)
19689 : return -1;
19690 : x9 = XEXP (x8, 0);
19691 : if (GET_CODE (x9) != VEC_SELECT)
19692 : return -1;
19693 : x10 = XEXP (x9, 1);
19694 : if (GET_CODE (x10) != PARALLEL)
19695 : return -1;
19696 : x11 = XEXP (x3, 1);
19697 : if (GET_CODE (x11) != MULT)
19698 : return -1;
19699 : x12 = XEXP (x11, 0);
19700 : if (GET_CODE (x12) != ZERO_EXTEND)
19701 : return -1;
19702 : x13 = XEXP (x12, 0);
19703 : if (GET_CODE (x13) != VEC_SELECT)
19704 : return -1;
19705 : x14 = XEXP (x13, 1);
19706 : if (GET_CODE (x14) != PARALLEL)
19707 : return -1;
19708 : x15 = XEXP (x11, 1);
19709 : if (GET_CODE (x15) != SIGN_EXTEND)
19710 : return -1;
19711 : x16 = XEXP (x15, 0);
19712 : if (GET_CODE (x16) != VEC_SELECT)
19713 : return -1;
19714 : x17 = XEXP (x16, 1);
19715 : if (GET_CODE (x17) != PARALLEL)
19716 : return -1;
19717 : x18 = XEXP (x6, 0);
19718 : operands[1] = x18;
19719 : x19 = XEXP (x9, 0);
19720 : operands[2] = x19;
19721 : x20 = XEXP (x13, 0);
19722 : if (!rtx_equal_p (x20, operands[1]))
19723 : return -1;
19724 : x21 = XEXP (x16, 0);
19725 : if (!rtx_equal_p (x21, operands[2]))
19726 : return -1;
19727 : switch (XVECLEN (x7, 0))
19728 : {
19729 : case 16:
19730 : if (pattern1092 (x7,
19731 : 6,
19732 : 4,
19733 : 2,
19734 : 0) != 0)
19735 : return -1;
19736 : x22 = XVECEXP (x7, 0, 4);
19737 : if (x22 != const_int_rtx[MAX_SAVED_CONST_INT + 8])
19738 : return -1;
19739 : x23 = XVECEXP (x7, 0, 5);
19740 : if (x23 != const_int_rtx[MAX_SAVED_CONST_INT + 10])
19741 : return -1;
19742 : x24 = XVECEXP (x7, 0, 6);
19743 : if (x24 != const_int_rtx[MAX_SAVED_CONST_INT + 12])
19744 : return -1;
19745 : x25 = XVECEXP (x7, 0, 7);
19746 : if (x25 != const_int_rtx[MAX_SAVED_CONST_INT + 14])
19747 : return -1;
19748 : x26 = XVECEXP (x7, 0, 8);
19749 : if (x26 != const_int_rtx[MAX_SAVED_CONST_INT + 16])
19750 : return -1;
19751 : x27 = XVECEXP (x7, 0, 9);
19752 : if (x27 != const_int_rtx[MAX_SAVED_CONST_INT + 18])
19753 : return -1;
19754 : x28 = XVECEXP (x7, 0, 10);
19755 : if (x28 != const_int_rtx[MAX_SAVED_CONST_INT + 20])
19756 : return -1;
19757 : x29 = XVECEXP (x7, 0, 11);
19758 : if (x29 != const_int_rtx[MAX_SAVED_CONST_INT + 22])
19759 : return -1;
19760 : x30 = XVECEXP (x7, 0, 12);
19761 : if (x30 != const_int_rtx[MAX_SAVED_CONST_INT + 24])
19762 : return -1;
19763 : x31 = XVECEXP (x7, 0, 13);
19764 : if (x31 != const_int_rtx[MAX_SAVED_CONST_INT + 26])
19765 : return -1;
19766 : x32 = XVECEXP (x7, 0, 14);
19767 : if (x32 != const_int_rtx[MAX_SAVED_CONST_INT + 28])
19768 : return -1;
19769 : x33 = XVECEXP (x7, 0, 15);
19770 : if (x33 != const_int_rtx[MAX_SAVED_CONST_INT + 30]
19771 : || pattern1320 (x10,
19772 : 16) != 0)
19773 : return -1;
19774 : x34 = XVECEXP (x10, 0, 8);
19775 : if (x34 != const_int_rtx[MAX_SAVED_CONST_INT + 16])
19776 : return -1;
19777 : x35 = XVECEXP (x10, 0, 9);
19778 : if (x35 != const_int_rtx[MAX_SAVED_CONST_INT + 18])
19779 : return -1;
19780 : x36 = XVECEXP (x10, 0, 10);
19781 : if (x36 != const_int_rtx[MAX_SAVED_CONST_INT + 20])
19782 : return -1;
19783 : x37 = XVECEXP (x10, 0, 11);
19784 : if (x37 != const_int_rtx[MAX_SAVED_CONST_INT + 22])
19785 : return -1;
19786 : x38 = XVECEXP (x10, 0, 12);
19787 : if (x38 != const_int_rtx[MAX_SAVED_CONST_INT + 24])
19788 : return -1;
19789 : x39 = XVECEXP (x10, 0, 13);
19790 : if (x39 != const_int_rtx[MAX_SAVED_CONST_INT + 26])
19791 : return -1;
19792 : x40 = XVECEXP (x10, 0, 14);
19793 : if (x40 != const_int_rtx[MAX_SAVED_CONST_INT + 28])
19794 : return -1;
19795 : x41 = XVECEXP (x10, 0, 15);
19796 : if (x41 != const_int_rtx[MAX_SAVED_CONST_INT + 30]
19797 : || pattern1894 (x14,
19798 : 16) != 0)
19799 : return -1;
19800 : x42 = XVECEXP (x14, 0, 8);
19801 : if (x42 != const_int_rtx[MAX_SAVED_CONST_INT + 17])
19802 : return -1;
19803 : x43 = XVECEXP (x14, 0, 9);
19804 : if (x43 != const_int_rtx[MAX_SAVED_CONST_INT + 19])
19805 : return -1;
19806 : x44 = XVECEXP (x14, 0, 10);
19807 : if (x44 != const_int_rtx[MAX_SAVED_CONST_INT + 21])
19808 : return -1;
19809 : x45 = XVECEXP (x14, 0, 11);
19810 : if (x45 != const_int_rtx[MAX_SAVED_CONST_INT + 23])
19811 : return -1;
19812 : x46 = XVECEXP (x14, 0, 12);
19813 : if (x46 != const_int_rtx[MAX_SAVED_CONST_INT + 25])
19814 : return -1;
19815 : x47 = XVECEXP (x14, 0, 13);
19816 : if (x47 != const_int_rtx[MAX_SAVED_CONST_INT + 27])
19817 : return -1;
19818 : x48 = XVECEXP (x14, 0, 14);
19819 : if (x48 != const_int_rtx[MAX_SAVED_CONST_INT + 29])
19820 : return -1;
19821 : x49 = XVECEXP (x14, 0, 15);
19822 : if (x49 != const_int_rtx[MAX_SAVED_CONST_INT + 31]
19823 : || pattern1911 (x17,
19824 : 16) != 0)
19825 : return -1;
19826 : x50 = XVECEXP (x17, 0, 8);
19827 : if (x50 != const_int_rtx[MAX_SAVED_CONST_INT + 17])
19828 : return -1;
19829 : x51 = XVECEXP (x17, 0, 9);
19830 : if (x51 != const_int_rtx[MAX_SAVED_CONST_INT + 19])
19831 : return -1;
19832 : x52 = XVECEXP (x17, 0, 10);
19833 : if (x52 != const_int_rtx[MAX_SAVED_CONST_INT + 21])
19834 : return -1;
19835 : x53 = XVECEXP (x17, 0, 11);
19836 : if (x53 != const_int_rtx[MAX_SAVED_CONST_INT + 23])
19837 : return -1;
19838 : x54 = XVECEXP (x17, 0, 12);
19839 : if (x54 != const_int_rtx[MAX_SAVED_CONST_INT + 25])
19840 : return -1;
19841 : x55 = XVECEXP (x17, 0, 13);
19842 : if (x55 != const_int_rtx[MAX_SAVED_CONST_INT + 27])
19843 : return -1;
19844 : x56 = XVECEXP (x17, 0, 14);
19845 : if (x56 != const_int_rtx[MAX_SAVED_CONST_INT + 29])
19846 : return -1;
19847 : x57 = XVECEXP (x17, 0, 15);
19848 : if (x57 != const_int_rtx[MAX_SAVED_CONST_INT + 31]
19849 : || pattern1917 (x3,
19850 : E_V32QImode,
19851 : E_V16QImode,
19852 : E_V16HImode) != 0
19853 : || GET_MODE (x8) != E_V16HImode
19854 : || GET_MODE (x9) != E_V16QImode
19855 : || !nonimmediate_operand (operands[2], E_V32QImode)
19856 : || pattern336 (x11,
19857 : E_V16QImode,
19858 : E_V16HImode) != 0
19859 : || !
19860 : #line 23132 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19861 : (TARGET_AVX2))
19862 : return -1;
19863 : return 8649; /* avx2_pmaddubsw256 */
19864 :
19865 : case 8:
19866 : if (pattern1321 (x4) != 0
19867 : || pattern1894 (x14,
19868 : 8) != 0
19869 : || pattern1911 (x17,
19870 : 8) != 0
19871 : || pattern1917 (x3,
19872 : E_V16QImode,
19873 : E_V8QImode,
19874 : E_V8HImode) != 0
19875 : || GET_MODE (x8) != E_V8HImode
19876 : || GET_MODE (x9) != E_V8QImode
19877 : || !vector_operand (operands[2], E_V16QImode)
19878 : || pattern336 (x11,
19879 : E_V8QImode,
19880 : E_V8HImode) != 0
19881 : || !
19882 : #line 23219 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19883 : (TARGET_SSSE3))
19884 : return -1;
19885 : return 8658; /* ssse3_pmaddubsw128 */
19886 :
19887 : default:
19888 : return -1;
19889 : }
19890 :
19891 : case REG:
19892 : case SUBREG:
19893 : case MEM:
19894 : switch (pattern334 (x3))
19895 : {
19896 : case 0:
19897 : if (!
19898 : #line 26722 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19899 : (TARGET_XOP))
19900 : return -1;
19901 : return 9040; /* xop_pmacssww */
19902 :
19903 : case 1:
19904 : if (!
19905 : #line 26722 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19906 : (TARGET_XOP))
19907 : return -1;
19908 : return 9042; /* xop_pmacssdd */
19909 :
19910 : default:
19911 : return -1;
19912 : }
19913 :
19914 : case SIGN_EXTEND:
19915 : if (pattern332 (x4) != 0)
19916 : return -1;
19917 : x11 = XEXP (x3, 1);
19918 : operands[3] = x11;
19919 : x6 = XEXP (x5, 0);
19920 : x7 = XEXP (x6, 1);
19921 : switch (XVECLEN (x7, 0))
19922 : {
19923 : case 2:
19924 : if (pattern1322 (x3) != 0)
19925 : return -1;
19926 : x8 = XEXP (x4, 1);
19927 : if (GET_MODE (x8) != E_V2DImode)
19928 : return -1;
19929 : x9 = XEXP (x8, 0);
19930 : if (GET_MODE (x9) != E_V2SImode
19931 : || !nonimmediate_operand (operands[2], E_V4SImode))
19932 : return -1;
19933 : switch (pattern1858 (x4))
19934 : {
19935 : case 0:
19936 : if (!
19937 : #line 26741 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19938 : (TARGET_XOP))
19939 : return -1;
19940 : return 9044; /* xop_pmacssdql */
19941 :
19942 : case 1:
19943 : if (!
19944 : #line 26760 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19945 : (TARGET_XOP))
19946 : return -1;
19947 : return 9046; /* xop_pmacssdqh */
19948 :
19949 : default:
19950 : return -1;
19951 : }
19952 :
19953 : case 4:
19954 : if (pattern1092 (x7,
19955 : 7,
19956 : 5,
19957 : 3,
19958 : 1) != 0)
19959 : return -1;
19960 : x8 = XEXP (x4, 1);
19961 : x9 = XEXP (x8, 0);
19962 : x10 = XEXP (x9, 1);
19963 : if (pattern1633 (x10,
19964 : 7,
19965 : 5,
19966 : 3,
19967 : 1) != 0
19968 : || !register_operand (operands[0], E_V4SImode)
19969 : || GET_MODE (x3) != E_V4SImode
19970 : || GET_MODE (x4) != E_V4SImode
19971 : || GET_MODE (x5) != E_V4SImode
19972 : || GET_MODE (x6) != E_V4HImode
19973 : || !nonimmediate_operand (operands[1], E_V8HImode)
19974 : || GET_MODE (x8) != E_V4SImode
19975 : || GET_MODE (x9) != E_V4HImode
19976 : || !nonimmediate_operand (operands[2], E_V8HImode)
19977 : || !register_operand (operands[3], E_V4SImode)
19978 : || !
19979 : #line 26782 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19980 : (TARGET_XOP))
19981 : return -1;
19982 : return 9048; /* xop_pmacsswd */
19983 :
19984 : default:
19985 : return -1;
19986 : }
19987 :
19988 : default:
19989 : return -1;
19990 : }
19991 :
19992 : case PLUS:
19993 : if (GET_MODE (x4) != E_V4SImode)
19994 : return -1;
19995 : x5 = XEXP (x4, 0);
19996 : if (GET_CODE (x5) != MULT
19997 : || pattern335 (x5) != 0)
19998 : return -1;
19999 : x58 = XEXP (x5, 1);
20000 : if (GET_MODE (x58) != E_V4SImode)
20001 : return -1;
20002 : x59 = XEXP (x58, 0);
20003 : if (GET_CODE (x59) != VEC_SELECT
20004 : || GET_MODE (x59) != E_V4HImode)
20005 : return -1;
20006 : x60 = XEXP (x59, 1);
20007 : if (GET_CODE (x60) != PARALLEL
20008 : || XVECLEN (x60, 0) != 4)
20009 : return -1;
20010 : x61 = XVECEXP (x60, 0, 0);
20011 : if (x61 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
20012 : return -1;
20013 : x62 = XVECEXP (x60, 0, 1);
20014 : if (x62 != const_int_rtx[MAX_SAVED_CONST_INT + 2])
20015 : return -1;
20016 : x63 = XVECEXP (x60, 0, 2);
20017 : if (x63 != const_int_rtx[MAX_SAVED_CONST_INT + 4])
20018 : return -1;
20019 : x64 = XVECEXP (x60, 0, 3);
20020 : if (x64 != const_int_rtx[MAX_SAVED_CONST_INT + 6])
20021 : return -1;
20022 : x8 = XEXP (x4, 1);
20023 : if (GET_CODE (x8) != MULT
20024 : || GET_MODE (x8) != E_V4SImode)
20025 : return -1;
20026 : x9 = XEXP (x8, 0);
20027 : if (GET_CODE (x9) != SIGN_EXTEND
20028 : || GET_MODE (x9) != E_V4SImode)
20029 : return -1;
20030 : x19 = XEXP (x9, 0);
20031 : if (GET_CODE (x19) != VEC_SELECT
20032 : || GET_MODE (x19) != E_V4HImode)
20033 : return -1;
20034 : x65 = XEXP (x19, 1);
20035 : if (GET_CODE (x65) != PARALLEL
20036 : || XVECLEN (x65, 0) != 4)
20037 : return -1;
20038 : x66 = XVECEXP (x65, 0, 0);
20039 : if (x66 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
20040 : return -1;
20041 : x67 = XVECEXP (x65, 0, 1);
20042 : if (x67 != const_int_rtx[MAX_SAVED_CONST_INT + 3])
20043 : return -1;
20044 : x68 = XVECEXP (x65, 0, 2);
20045 : if (x68 != const_int_rtx[MAX_SAVED_CONST_INT + 5])
20046 : return -1;
20047 : x69 = XVECEXP (x65, 0, 3);
20048 : if (x69 != const_int_rtx[MAX_SAVED_CONST_INT + 7])
20049 : return -1;
20050 : x70 = XEXP (x8, 1);
20051 : if (GET_CODE (x70) != SIGN_EXTEND
20052 : || GET_MODE (x70) != E_V4SImode)
20053 : return -1;
20054 : x71 = XEXP (x70, 0);
20055 : if (GET_CODE (x71) != VEC_SELECT
20056 : || GET_MODE (x71) != E_V4HImode)
20057 : return -1;
20058 : x72 = XEXP (x71, 1);
20059 : if (GET_CODE (x72) != PARALLEL
20060 : || XVECLEN (x72, 0) != 4)
20061 : return -1;
20062 : x73 = XVECEXP (x72, 0, 0);
20063 : if (x73 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
20064 : return -1;
20065 : x74 = XVECEXP (x72, 0, 1);
20066 : if (x74 != const_int_rtx[MAX_SAVED_CONST_INT + 3])
20067 : return -1;
20068 : x75 = XVECEXP (x72, 0, 2);
20069 : if (x75 != const_int_rtx[MAX_SAVED_CONST_INT + 5])
20070 : return -1;
20071 : x76 = XVECEXP (x72, 0, 3);
20072 : if (x76 != const_int_rtx[MAX_SAVED_CONST_INT + 7]
20073 : || !register_operand (operands[0], E_V4SImode)
20074 : || GET_MODE (x3) != E_V4SImode
20075 : || pattern1914 (x3) != 0
20076 : || !
20077 : #line 26815 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20078 : (TARGET_XOP))
20079 : return -1;
20080 : return 9050; /* xop_pmadcsswd */
20081 :
20082 : default:
20083 : return -1;
20084 : }
20085 : }
20086 :
20087 : int
20088 : recog_335 (rtx x1 ATTRIBUTE_UNUSED,
20089 : rtx_insn *insn ATTRIBUTE_UNUSED,
20090 : int *pnum_clobbers ATTRIBUTE_UNUSED)
20091 : {
20092 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
20093 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
20094 : rtx x10, x11;
20095 : int res ATTRIBUTE_UNUSED;
20096 : x2 = XEXP (x1, 0);
20097 : operands[0] = x2;
20098 : x3 = XEXP (x1, 1);
20099 : x4 = XEXP (x3, 0);
20100 : switch (GET_CODE (x4))
20101 : {
20102 : case REG:
20103 : case SUBREG:
20104 : case MEM:
20105 : operands[3] = x4;
20106 : x5 = XEXP (x3, 1);
20107 : operands[1] = x5;
20108 : x6 = XEXP (x3, 2);
20109 : operands[2] = x6;
20110 : switch (GET_MODE (operands[0]))
20111 : {
20112 : case E_V32QImode:
20113 : if (pattern818 (x3,
20114 : E_V32QImode) != 0
20115 : || !
20116 : #line 26828 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20117 : (TARGET_XOP))
20118 : return -1;
20119 : return 9051; /* xop_pcmov_v32qi256 */
20120 :
20121 : case E_V16QImode:
20122 : if (pattern818 (x3,
20123 : E_V16QImode) != 0
20124 : || !
20125 : #line 26828 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20126 : (TARGET_XOP))
20127 : return -1;
20128 : return 9052; /* xop_pcmov_v16qi */
20129 :
20130 : case E_V16HImode:
20131 : if (pattern818 (x3,
20132 : E_V16HImode) != 0
20133 : || !
20134 : #line 26828 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20135 : (TARGET_XOP))
20136 : return -1;
20137 : return 9053; /* xop_pcmov_v16hi256 */
20138 :
20139 : case E_V8HImode:
20140 : if (pattern818 (x3,
20141 : E_V8HImode) != 0
20142 : || !
20143 : #line 26828 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20144 : (TARGET_XOP))
20145 : return -1;
20146 : return 9054; /* xop_pcmov_v8hi */
20147 :
20148 : case E_V8SImode:
20149 : if (pattern818 (x3,
20150 : E_V8SImode) != 0
20151 : || !
20152 : #line 26828 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20153 : (TARGET_XOP))
20154 : return -1;
20155 : return 9055; /* xop_pcmov_v8si256 */
20156 :
20157 : case E_V4SImode:
20158 : if (pattern818 (x3,
20159 : E_V4SImode) != 0
20160 : || !
20161 : #line 26828 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20162 : (TARGET_XOP))
20163 : return -1;
20164 : return 9056; /* xop_pcmov_v4si */
20165 :
20166 : case E_V4DImode:
20167 : if (pattern818 (x3,
20168 : E_V4DImode) != 0
20169 : || !
20170 : #line 26828 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20171 : (TARGET_XOP))
20172 : return -1;
20173 : return 9057; /* xop_pcmov_v4di256 */
20174 :
20175 : case E_V2DImode:
20176 : if (pattern818 (x3,
20177 : E_V2DImode) != 0
20178 : || !
20179 : #line 26828 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20180 : (TARGET_XOP))
20181 : return -1;
20182 : return 9058; /* xop_pcmov_v2di */
20183 :
20184 : case E_V2TImode:
20185 : if (pattern818 (x3,
20186 : E_V2TImode) != 0
20187 : || !
20188 : #line 26828 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20189 : (TARGET_XOP))
20190 : return -1;
20191 : return 9059; /* xop_pcmov_v2ti256 */
20192 :
20193 : case E_V1TImode:
20194 : if (pattern818 (x3,
20195 : E_V1TImode) != 0
20196 : || !
20197 : #line 26828 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20198 : (TARGET_XOP))
20199 : return -1;
20200 : return 9060; /* xop_pcmov_v1ti */
20201 :
20202 : case E_V16HFmode:
20203 : if (pattern818 (x3,
20204 : E_V16HFmode) != 0
20205 : || !
20206 : #line 26828 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20207 : (TARGET_XOP))
20208 : return -1;
20209 : return 9061; /* xop_pcmov_v16hf256 */
20210 :
20211 : case E_V8HFmode:
20212 : if (pattern818 (x3,
20213 : E_V8HFmode) != 0
20214 : || !
20215 : #line 26828 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20216 : (TARGET_XOP))
20217 : return -1;
20218 : return 9062; /* xop_pcmov_v8hf */
20219 :
20220 : case E_V8SFmode:
20221 : if (pattern818 (x3,
20222 : E_V8SFmode) != 0
20223 : || !
20224 : #line 26828 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20225 : (TARGET_XOP))
20226 : return -1;
20227 : return 9063; /* xop_pcmov_v8sf256 */
20228 :
20229 : case E_V4SFmode:
20230 : if (pattern818 (x3,
20231 : E_V4SFmode) != 0
20232 : || !
20233 : #line 26828 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20234 : (TARGET_XOP))
20235 : return -1;
20236 : return 9064; /* xop_pcmov_v4sf */
20237 :
20238 : case E_V4DFmode:
20239 : if (pattern818 (x3,
20240 : E_V4DFmode) != 0
20241 : || !
20242 : #line 26828 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20243 : (TARGET_XOP))
20244 : return -1;
20245 : return 9065; /* xop_pcmov_v4df256 */
20246 :
20247 : case E_V2DFmode:
20248 : if (pattern818 (x3,
20249 : E_V2DFmode) != 0
20250 : || !
20251 : #line 26828 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20252 : (TARGET_XOP))
20253 : return -1;
20254 : return 9066; /* xop_pcmov_v2df */
20255 :
20256 : default:
20257 : return -1;
20258 : }
20259 :
20260 : case GE:
20261 : x7 = XEXP (x4, 1);
20262 : if (x7 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
20263 : return -1;
20264 : x8 = XEXP (x4, 0);
20265 : operands[2] = x8;
20266 : x5 = XEXP (x3, 1);
20267 : switch (GET_CODE (x5))
20268 : {
20269 : case ROTATE:
20270 : x6 = XEXP (x3, 2);
20271 : if (GET_CODE (x6) != ROTATERT)
20272 : return -1;
20273 : x9 = XEXP (x6, 1);
20274 : if (GET_CODE (x9) != NEG)
20275 : return -1;
20276 : x10 = XEXP (x5, 0);
20277 : operands[1] = x10;
20278 : x11 = XEXP (x5, 1);
20279 : if (!rtx_equal_p (x11, operands[2]))
20280 : return -1;
20281 : switch (pattern1157 (x3))
20282 : {
20283 : case 0:
20284 : if (!
20285 : #line 27274 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20286 : (TARGET_XOP && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
20287 : return -1;
20288 : return 9094; /* xop_vrotlv16qi3 */
20289 :
20290 : case 1:
20291 : if (!
20292 : #line 27274 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20293 : (TARGET_XOP && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
20294 : return -1;
20295 : return 9095; /* xop_vrotlv8hi3 */
20296 :
20297 : case 2:
20298 : if (!
20299 : #line 27274 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20300 : (TARGET_XOP && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
20301 : return -1;
20302 : return 9096; /* xop_vrotlv4si3 */
20303 :
20304 : case 3:
20305 : if (!
20306 : #line 27274 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20307 : (TARGET_XOP && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
20308 : return -1;
20309 : return 9097; /* xop_vrotlv2di3 */
20310 :
20311 : default:
20312 : return -1;
20313 : }
20314 :
20315 : case ASHIFT:
20316 : x10 = XEXP (x5, 0);
20317 : operands[1] = x10;
20318 : x11 = XEXP (x5, 1);
20319 : if (!rtx_equal_p (x11, operands[2]))
20320 : return -1;
20321 : x6 = XEXP (x3, 2);
20322 : switch (GET_CODE (x6))
20323 : {
20324 : case ASHIFTRT:
20325 : x9 = XEXP (x6, 1);
20326 : if (GET_CODE (x9) != NEG)
20327 : return -1;
20328 : switch (pattern1157 (x3))
20329 : {
20330 : case 0:
20331 : if (!
20332 : #line 27511 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20333 : (TARGET_XOP && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
20334 : return -1;
20335 : return 9098; /* xop_shav16qi3 */
20336 :
20337 : case 1:
20338 : if (!
20339 : #line 27511 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20340 : (TARGET_XOP && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
20341 : return -1;
20342 : return 9099; /* xop_shav8hi3 */
20343 :
20344 : case 2:
20345 : if (!
20346 : #line 27511 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20347 : (TARGET_XOP && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
20348 : return -1;
20349 : return 9100; /* xop_shav4si3 */
20350 :
20351 : case 3:
20352 : if (!
20353 : #line 27511 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20354 : (TARGET_XOP && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
20355 : return -1;
20356 : return 9101; /* xop_shav2di3 */
20357 :
20358 : default:
20359 : return -1;
20360 : }
20361 :
20362 : case LSHIFTRT:
20363 : x9 = XEXP (x6, 1);
20364 : if (GET_CODE (x9) != NEG)
20365 : return -1;
20366 : switch (pattern1157 (x3))
20367 : {
20368 : case 0:
20369 : if (!
20370 : #line 27530 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20371 : (TARGET_XOP && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
20372 : return -1;
20373 : return 9102; /* xop_shlv16qi3 */
20374 :
20375 : case 1:
20376 : if (!
20377 : #line 27530 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20378 : (TARGET_XOP && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
20379 : return -1;
20380 : return 9103; /* xop_shlv8hi3 */
20381 :
20382 : case 2:
20383 : if (!
20384 : #line 27530 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20385 : (TARGET_XOP && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
20386 : return -1;
20387 : return 9104; /* xop_shlv4si3 */
20388 :
20389 : case 3:
20390 : if (!
20391 : #line 27530 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20392 : (TARGET_XOP && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
20393 : return -1;
20394 : return 9105; /* xop_shlv2di3 */
20395 :
20396 : default:
20397 : return -1;
20398 : }
20399 :
20400 : default:
20401 : return -1;
20402 : }
20403 :
20404 : default:
20405 : return -1;
20406 : }
20407 :
20408 : default:
20409 : return -1;
20410 : }
20411 : }
20412 :
20413 : int
20414 : recog_340 (rtx x1 ATTRIBUTE_UNUSED,
20415 : rtx_insn *insn ATTRIBUTE_UNUSED,
20416 : int *pnum_clobbers ATTRIBUTE_UNUSED)
20417 : {
20418 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
20419 : rtx x2, x3, x4;
20420 : int res ATTRIBUTE_UNUSED;
20421 : x2 = XEXP (x1, 0);
20422 : operands[0] = x2;
20423 : x3 = XEXP (x1, 1);
20424 : x4 = XEXP (x3, 0);
20425 : operands[1] = x4;
20426 : switch (GET_MODE (operands[0]))
20427 : {
20428 : case E_V64QImode:
20429 : if (!register_operand (operands[0], E_V64QImode)
20430 : || GET_MODE (x3) != E_V64QImode
20431 : || !vector_operand (operands[1], E_V64QImode)
20432 : || !(
20433 : #line 23706 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20434 : (TARGET_SSSE3) &&
20435 : #line 23696 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20436 : (TARGET_AVX512BW)))
20437 : return -1;
20438 : return 8691; /* *absv64qi2 */
20439 :
20440 : case E_V32QImode:
20441 : if (!register_operand (operands[0], E_V32QImode)
20442 : || GET_MODE (x3) != E_V32QImode
20443 : || !vector_operand (operands[1], E_V32QImode)
20444 : || !(
20445 : #line 23706 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20446 : (TARGET_SSSE3) &&
20447 : #line 23696 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20448 : (TARGET_AVX2)))
20449 : return -1;
20450 : return 8692; /* *absv32qi2 */
20451 :
20452 : case E_V16QImode:
20453 : if (!register_operand (operands[0], E_V16QImode)
20454 : || GET_MODE (x3) != E_V16QImode
20455 : || !vector_operand (operands[1], E_V16QImode)
20456 : || !
20457 : #line 23706 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20458 : (TARGET_SSSE3))
20459 : return -1;
20460 : return 8693; /* *absv16qi2 */
20461 :
20462 : case E_V32HImode:
20463 : if (!register_operand (operands[0], E_V32HImode)
20464 : || GET_MODE (x3) != E_V32HImode
20465 : || !vector_operand (operands[1], E_V32HImode)
20466 : || !(
20467 : #line 23706 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20468 : (TARGET_SSSE3) &&
20469 : #line 23697 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20470 : (TARGET_AVX512BW)))
20471 : return -1;
20472 : return 8694; /* *absv32hi2 */
20473 :
20474 : case E_V16HImode:
20475 : if (!register_operand (operands[0], E_V16HImode)
20476 : || GET_MODE (x3) != E_V16HImode
20477 : || !vector_operand (operands[1], E_V16HImode)
20478 : || !(
20479 : #line 23706 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20480 : (TARGET_SSSE3) &&
20481 : #line 23697 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20482 : (TARGET_AVX2)))
20483 : return -1;
20484 : return 8695; /* *absv16hi2 */
20485 :
20486 : case E_V8HImode:
20487 : if (!register_operand (operands[0], E_V8HImode)
20488 : || GET_MODE (x3) != E_V8HImode
20489 : || !vector_operand (operands[1], E_V8HImode)
20490 : || !
20491 : #line 23706 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20492 : (TARGET_SSSE3))
20493 : return -1;
20494 : return 8696; /* *absv8hi2 */
20495 :
20496 : case E_V16SImode:
20497 : if (!register_operand (operands[0], E_V16SImode)
20498 : || GET_MODE (x3) != E_V16SImode
20499 : || !vector_operand (operands[1], E_V16SImode)
20500 : || !(
20501 : #line 23706 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20502 : (TARGET_SSSE3) &&
20503 : #line 23698 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20504 : (TARGET_AVX512F)))
20505 : return -1;
20506 : return 8697; /* *absv16si2 */
20507 :
20508 : case E_V8SImode:
20509 : if (!register_operand (operands[0], E_V8SImode)
20510 : || GET_MODE (x3) != E_V8SImode
20511 : || !vector_operand (operands[1], E_V8SImode)
20512 : || !(
20513 : #line 23706 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20514 : (TARGET_SSSE3) &&
20515 : #line 23698 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20516 : (TARGET_AVX2)))
20517 : return -1;
20518 : return 8698; /* *absv8si2 */
20519 :
20520 : case E_V4SImode:
20521 : if (!register_operand (operands[0], E_V4SImode)
20522 : || GET_MODE (x3) != E_V4SImode
20523 : || !vector_operand (operands[1], E_V4SImode)
20524 : || !
20525 : #line 23706 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20526 : (TARGET_SSSE3))
20527 : return -1;
20528 : return 8699; /* *absv4si2 */
20529 :
20530 : case E_V8DImode:
20531 : if (!register_operand (operands[0], E_V8DImode)
20532 : || GET_MODE (x3) != E_V8DImode
20533 : || !vector_operand (operands[1], E_V8DImode)
20534 : || !(
20535 : #line 23706 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20536 : (TARGET_SSSE3) &&
20537 : #line 23699 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20538 : (TARGET_AVX512F)))
20539 : return -1;
20540 : return 8700; /* *absv8di2 */
20541 :
20542 : case E_V4DImode:
20543 : if (!register_operand (operands[0], E_V4DImode)
20544 : || GET_MODE (x3) != E_V4DImode
20545 : || !vector_operand (operands[1], E_V4DImode)
20546 : || !(
20547 : #line 23706 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20548 : (TARGET_SSSE3) &&
20549 : #line 23699 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20550 : (TARGET_AVX512VL)))
20551 : return -1;
20552 : return 8701; /* *absv4di2 */
20553 :
20554 : case E_V2DImode:
20555 : if (!register_operand (operands[0], E_V2DImode)
20556 : || GET_MODE (x3) != E_V2DImode
20557 : || !vector_operand (operands[1], E_V2DImode)
20558 : || !(
20559 : #line 23706 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20560 : (TARGET_SSSE3) &&
20561 : #line 23700 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20562 : (TARGET_AVX512VL)))
20563 : return -1;
20564 : return 8702; /* *absv2di2 */
20565 :
20566 : default:
20567 : return -1;
20568 : }
20569 : }
20570 :
20571 : int
20572 : recog_344 (rtx x1 ATTRIBUTE_UNUSED,
20573 : rtx_insn *insn ATTRIBUTE_UNUSED,
20574 : int *pnum_clobbers ATTRIBUTE_UNUSED)
20575 : {
20576 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
20577 : rtx x2, x3, x4, x5;
20578 : int res ATTRIBUTE_UNUSED;
20579 : x2 = XEXP (x1, 0);
20580 : operands[0] = x2;
20581 : x3 = XEXP (x1, 1);
20582 : switch (GET_CODE (x3))
20583 : {
20584 : case NE:
20585 : case EQ:
20586 : case GE:
20587 : case GT:
20588 : case LE:
20589 : case LT:
20590 : case LTGT:
20591 : case UNORDERED:
20592 : case ORDERED:
20593 : case UNEQ:
20594 : case UNGE:
20595 : case UNGT:
20596 : case UNLE:
20597 : case UNLT:
20598 : res = recog_276 (x1, insn, pnum_clobbers);
20599 : if (res >= 0)
20600 : return res;
20601 : break;
20602 :
20603 : default:
20604 : break;
20605 : }
20606 : switch (GET_CODE (x3))
20607 : {
20608 : case LT:
20609 : switch (pattern203 (x3))
20610 : {
20611 : case 0:
20612 : if ((
20613 : #line 17452 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20614 : (TARGET_SSE2 && ix86_pre_reload_split ()) &&
20615 : #line 736 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20616 : (TARGET_AVX2)))
20617 : return 7658; /* *ashrv16hi3_1 */
20618 : break;
20619 :
20620 : case 1:
20621 : if (
20622 : #line 17452 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20623 : (TARGET_SSE2 && ix86_pre_reload_split ()))
20624 : return 7659; /* *ashrv8hi3_1 */
20625 : break;
20626 :
20627 : case 2:
20628 : if ((
20629 : #line 17452 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20630 : (TARGET_SSE2 && ix86_pre_reload_split ()) &&
20631 : #line 737 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20632 : (TARGET_AVX2)))
20633 : return 7660; /* *ashrv8si3_1 */
20634 : break;
20635 :
20636 : case 3:
20637 : if (
20638 : #line 17452 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20639 : (TARGET_SSE2 && ix86_pre_reload_split ()))
20640 : return 7661; /* *ashrv4si3_1 */
20641 : break;
20642 :
20643 : default:
20644 : break;
20645 : }
20646 : break;
20647 :
20648 : case EQ:
20649 : res = recog_277 (x1, insn, pnum_clobbers);
20650 : if (res >= 0)
20651 : return res;
20652 : break;
20653 :
20654 : case GT:
20655 : x4 = XEXP (x3, 0);
20656 : operands[1] = x4;
20657 : x5 = XEXP (x3, 1);
20658 : operands[2] = x5;
20659 : switch (GET_MODE (operands[0]))
20660 : {
20661 : case E_V2DImode:
20662 : if (pattern680 (x3,
20663 : E_V2DImode) == 0
20664 : &&
20665 : #line 18594 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20666 : (TARGET_SSE4_2))
20667 : return 7992; /* sse4_2_gtv2di3 */
20668 : break;
20669 :
20670 : case E_V32QImode:
20671 : if (pattern12 (x3,
20672 : E_V32QImode) == 0
20673 : &&
20674 : #line 18611 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20675 : (TARGET_AVX2))
20676 : return 7993; /* avx2_gtv32qi3 */
20677 : break;
20678 :
20679 : case E_V16HImode:
20680 : if (pattern12 (x3,
20681 : E_V16HImode) == 0
20682 : &&
20683 : #line 18611 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20684 : (TARGET_AVX2))
20685 : return 7994; /* avx2_gtv16hi3 */
20686 : break;
20687 :
20688 : case E_V8SImode:
20689 : if (pattern12 (x3,
20690 : E_V8SImode) == 0
20691 : &&
20692 : #line 18611 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20693 : (TARGET_AVX2))
20694 : return 7995; /* avx2_gtv8si3 */
20695 : break;
20696 :
20697 : case E_V4DImode:
20698 : if (pattern12 (x3,
20699 : E_V4DImode) == 0
20700 : &&
20701 : #line 18611 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20702 : (TARGET_AVX2))
20703 : return 7996; /* avx2_gtv4di3 */
20704 : break;
20705 :
20706 : case E_V16QImode:
20707 : if (pattern680 (x3,
20708 : E_V16QImode) == 0
20709 : &&
20710 : #line 18643 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20711 : (TARGET_SSE2))
20712 : return 7997; /* *sse2_gtv16qi3 */
20713 : break;
20714 :
20715 : case E_V8HImode:
20716 : if (pattern680 (x3,
20717 : E_V8HImode) == 0
20718 : &&
20719 : #line 18643 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20720 : (TARGET_SSE2))
20721 : return 7998; /* *sse2_gtv8hi3 */
20722 : break;
20723 :
20724 : case E_V4SImode:
20725 : if (pattern680 (x3,
20726 : E_V4SImode) == 0
20727 : &&
20728 : #line 18643 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20729 : (TARGET_SSE2))
20730 : return 7999; /* *sse2_gtv4si3 */
20731 : break;
20732 :
20733 : default:
20734 : break;
20735 : }
20736 : break;
20737 :
20738 : default:
20739 : break;
20740 : }
20741 : operands[1] = x3;
20742 : x4 = XEXP (x3, 0);
20743 : operands[2] = x4;
20744 : x5 = XEXP (x3, 1);
20745 : operands[3] = x5;
20746 : switch (GET_CODE (operands[1]))
20747 : {
20748 : case NE:
20749 : case EQ:
20750 : case GE:
20751 : case GT:
20752 : case LE:
20753 : case LT:
20754 : switch (GET_MODE (operands[0]))
20755 : {
20756 : case E_V16QImode:
20757 : if (pattern804 (
20758 : E_V16QImode) == 0
20759 : &&
20760 : #line 27719 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20761 : (TARGET_XOP))
20762 : return 9115; /* xop_maskcmpv16qi3 */
20763 : break;
20764 :
20765 : case E_V8HImode:
20766 : if (pattern804 (
20767 : E_V8HImode) == 0
20768 : &&
20769 : #line 27719 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20770 : (TARGET_XOP))
20771 : return 9116; /* xop_maskcmpv8hi3 */
20772 : break;
20773 :
20774 : case E_V4SImode:
20775 : if (pattern804 (
20776 : E_V4SImode) == 0
20777 : &&
20778 : #line 27719 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20779 : (TARGET_XOP))
20780 : return 9117; /* xop_maskcmpv4si3 */
20781 : break;
20782 :
20783 : case E_V2DImode:
20784 : if (pattern804 (
20785 : E_V2DImode) == 0
20786 : &&
20787 : #line 27719 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20788 : (TARGET_XOP))
20789 : return 9118; /* xop_maskcmpv2di3 */
20790 : break;
20791 :
20792 : default:
20793 : break;
20794 : }
20795 : break;
20796 :
20797 : default:
20798 : break;
20799 : }
20800 : switch (GET_CODE (operands[1]))
20801 : {
20802 : case NE:
20803 : case EQ:
20804 : case GEU:
20805 : case GTU:
20806 : case LEU:
20807 : case LTU:
20808 : switch (GET_MODE (operands[0]))
20809 : {
20810 : case E_V16QImode:
20811 : if (pattern805 (
20812 : E_V16QImode) != 0
20813 : || !
20814 : #line 27729 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20815 : (TARGET_XOP))
20816 : return -1;
20817 : return 9119; /* xop_maskcmp_unsv16qi3 */
20818 :
20819 : case E_V8HImode:
20820 : if (pattern805 (
20821 : E_V8HImode) != 0
20822 : || !
20823 : #line 27729 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20824 : (TARGET_XOP))
20825 : return -1;
20826 : return 9120; /* xop_maskcmp_unsv8hi3 */
20827 :
20828 : case E_V4SImode:
20829 : if (pattern805 (
20830 : E_V4SImode) != 0
20831 : || !
20832 : #line 27729 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20833 : (TARGET_XOP))
20834 : return -1;
20835 : return 9121; /* xop_maskcmp_unsv4si3 */
20836 :
20837 : case E_V2DImode:
20838 : if (pattern805 (
20839 : E_V2DImode) != 0
20840 : || !
20841 : #line 27729 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20842 : (TARGET_XOP))
20843 : return -1;
20844 : return 9122; /* xop_maskcmp_unsv2di3 */
20845 :
20846 : default:
20847 : return -1;
20848 : }
20849 :
20850 : default:
20851 : return -1;
20852 : }
20853 : }
20854 :
20855 : int
20856 : recog_350 (rtx x1 ATTRIBUTE_UNUSED,
20857 : rtx_insn *insn ATTRIBUTE_UNUSED,
20858 : int *pnum_clobbers ATTRIBUTE_UNUSED)
20859 : {
20860 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
20861 : int res ATTRIBUTE_UNUSED;
20862 : switch (pattern29 (x1))
20863 : {
20864 : case 0:
20865 : if (!(
20866 : #line 8212 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20867 : (TARGET_AVX512FP16) &&
20868 : #line 687 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20869 : (TARGET_AVX512VL)))
20870 : return -1;
20871 : return 4651; /* avx512fp16_fix_truncv8hi2 */
20872 :
20873 : case 1:
20874 : if (!(
20875 : #line 8212 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20876 : (TARGET_AVX512FP16) &&
20877 : #line 687 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20878 : (TARGET_AVX512VL)))
20879 : return -1;
20880 : return 4659; /* avx512fp16_fix_truncv16hi2 */
20881 :
20882 : case 2:
20883 : if (!
20884 : #line 8212 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20885 : (TARGET_AVX512FP16))
20886 : return -1;
20887 : return 4667; /* avx512fp16_fix_truncv32hi2 */
20888 :
20889 : case 3:
20890 : switch (GET_MODE (operands[1]))
20891 : {
20892 : case E_V8HFmode:
20893 : if (!vector_operand (operands[1], E_V8HFmode)
20894 : || !(
20895 : #line 8212 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20896 : (TARGET_AVX512FP16) &&
20897 : #line 688 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20898 : (TARGET_AVX512VL)))
20899 : return -1;
20900 : return 4675; /* avx512fp16_fix_truncv8si2 */
20901 :
20902 : case E_V8SFmode:
20903 : if (!nonimmediate_operand (operands[1], E_V8SFmode)
20904 : || !
20905 : #line 9126 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20906 : (TARGET_AVX && 1))
20907 : return -1;
20908 : return 4927; /* fix_truncv8sfv8si2 */
20909 :
20910 : case E_V8DFmode:
20911 : if (!vector_operand (operands[1], E_V8DFmode)
20912 : || !
20913 : #line 9900 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20914 : (TARGET_AVX512F))
20915 : return -1;
20916 : return 5066; /* fix_truncv8dfv8si2 */
20917 :
20918 : default:
20919 : return -1;
20920 : }
20921 :
20922 : case 4:
20923 : if (!
20924 : #line 8212 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20925 : (TARGET_AVX512FP16))
20926 : return -1;
20927 : return 4683; /* avx512fp16_fix_truncv16si2 */
20928 :
20929 : case 5:
20930 : if (!
20931 : #line 9107 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20932 : (TARGET_AVX512F))
20933 : return -1;
20934 : return 4917; /* fix_truncv16sfv16si2 */
20935 :
20936 : case 6:
20937 : if (!
20938 : #line 8212 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20939 : (TARGET_AVX512FP16))
20940 : return -1;
20941 : return 4691; /* avx512fp16_fix_truncv8di2 */
20942 :
20943 : case 7:
20944 : if (!
20945 : #line 10029 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20946 : (TARGET_AVX512DQ && 1))
20947 : return -1;
20948 : return 5103; /* fix_truncv8dfv8di2 */
20949 :
20950 : case 8:
20951 : if (!
20952 : #line 10072 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20953 : (TARGET_AVX512DQ && 1))
20954 : return -1;
20955 : return 5147; /* fix_truncv8sfv8di2 */
20956 :
20957 : case 9:
20958 : switch (GET_MODE (operands[1]))
20959 : {
20960 : case E_V4HFmode:
20961 : if (!memory_operand (operands[1], E_V4HFmode)
20962 : || !
20963 : #line 8262 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20964 : (TARGET_AVX512FP16 && TARGET_AVX512VL))
20965 : return -1;
20966 : return 4715; /* *avx512fp16_fix_truncv4si2_load */
20967 :
20968 : case E_V4SFmode:
20969 : if (!vector_operand (operands[1], E_V4SFmode)
20970 : || !
20971 : #line 9156 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20972 : (TARGET_SSE2 && 1))
20973 : return -1;
20974 : return 4931; /* fix_truncv4sfv4si2 */
20975 :
20976 : case E_V4DFmode:
20977 : if (!nonimmediate_operand (operands[1], E_V4DFmode)
20978 : || !
20979 : #line 9989 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20980 : (TARGET_AVX || (TARGET_AVX512VL && TARGET_AVX512F)))
20981 : return -1;
20982 : return 5081; /* fix_truncv4dfv4si2 */
20983 :
20984 : default:
20985 : return -1;
20986 : }
20987 :
20988 : case 10:
20989 : if (!
20990 : #line 8262 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20991 : (TARGET_AVX512FP16 && TARGET_AVX512VL))
20992 : return -1;
20993 : return 4719; /* *avx512fp16_fix_truncv4di2_load */
20994 :
20995 : case 11:
20996 : if (!(
20997 : #line 10029 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20998 : (TARGET_AVX512DQ && 1) &&
20999 : #line 531 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21000 : (TARGET_AVX512VL)))
21001 : return -1;
21002 : return 5111; /* fix_truncv4dfv4di2 */
21003 :
21004 : case 12:
21005 : if (!(
21006 : #line 10072 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21007 : (TARGET_AVX512DQ && 1) &&
21008 : #line 620 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21009 : (TARGET_AVX512VL)))
21010 : return -1;
21011 : return 5155; /* fix_truncv4sfv4di2 */
21012 :
21013 : case 13:
21014 : if (!
21015 : #line 8312 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21016 : (TARGET_AVX512FP16 && TARGET_AVX512VL))
21017 : return -1;
21018 : return 4731; /* *avx512fp16_fix_truncv2di2_load */
21019 :
21020 : case 14:
21021 : if (!(
21022 : #line 10029 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21023 : (TARGET_AVX512DQ && 1) &&
21024 : #line 531 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21025 : (TARGET_AVX512VL)))
21026 : return -1;
21027 : return 5115; /* fix_truncv2dfv2di2 */
21028 :
21029 : case 15:
21030 : if (!
21031 : #line 8252 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21032 : (TARGET_AVX512FP16 && TARGET_AVX512VL))
21033 : return -1;
21034 : return 4707; /* avx512fp16_fix_truncv4si2 */
21035 :
21036 : case 16:
21037 : if (!
21038 : #line 8252 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21039 : (TARGET_AVX512FP16 && TARGET_AVX512VL))
21040 : return -1;
21041 : return 4711; /* avx512fp16_fix_truncv4di2 */
21042 :
21043 : case 17:
21044 : if (!
21045 : #line 8302 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21046 : (TARGET_AVX512FP16 && TARGET_AVX512VL))
21047 : return -1;
21048 : return 4727; /* avx512fp16_fix_truncv2di2 */
21049 :
21050 : case 18:
21051 : if (!
21052 : #line 10095 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21053 : (TARGET_AVX512DQ && TARGET_AVX512VL))
21054 : return -1;
21055 : return 5163; /* avx512dq_fix_truncv2sfv2di2 */
21056 :
21057 : default:
21058 : return -1;
21059 : }
21060 : }
21061 :
21062 : int
21063 : recog_355 (rtx x1 ATTRIBUTE_UNUSED,
21064 : rtx_insn *insn ATTRIBUTE_UNUSED,
21065 : int *pnum_clobbers ATTRIBUTE_UNUSED)
21066 : {
21067 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
21068 : rtx x2, x3, x4;
21069 : int res ATTRIBUTE_UNUSED;
21070 : x2 = XEXP (x1, 0);
21071 : operands[0] = x2;
21072 : x3 = XEXP (x1, 1);
21073 : x4 = XEXP (x3, 0);
21074 : operands[1] = x4;
21075 : switch (GET_MODE (operands[0]))
21076 : {
21077 : case E_V16SImode:
21078 : if (!register_operand (operands[0], E_V16SImode)
21079 : || GET_MODE (x3) != E_V16SImode
21080 : || !nonimmediate_operand (operands[1], E_V16SImode)
21081 : || !
21082 : #line 30636 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21083 : (TARGET_AVX512CD))
21084 : return -1;
21085 : return 10133; /* clzv16si2 */
21086 :
21087 : case E_V8SImode:
21088 : if (!register_operand (operands[0], E_V8SImode)
21089 : || GET_MODE (x3) != E_V8SImode
21090 : || !nonimmediate_operand (operands[1], E_V8SImode)
21091 : || !(
21092 : #line 30636 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21093 : (TARGET_AVX512CD) &&
21094 : #line 496 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21095 : (TARGET_AVX512VL)))
21096 : return -1;
21097 : return 10135; /* clzv8si2 */
21098 :
21099 : case E_V4SImode:
21100 : if (!register_operand (operands[0], E_V4SImode)
21101 : || GET_MODE (x3) != E_V4SImode
21102 : || !nonimmediate_operand (operands[1], E_V4SImode)
21103 : || !(
21104 : #line 30636 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21105 : (TARGET_AVX512CD) &&
21106 : #line 496 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21107 : (TARGET_AVX512VL)))
21108 : return -1;
21109 : return 10137; /* clzv4si2 */
21110 :
21111 : case E_V8DImode:
21112 : if (!register_operand (operands[0], E_V8DImode)
21113 : || GET_MODE (x3) != E_V8DImode
21114 : || !nonimmediate_operand (operands[1], E_V8DImode)
21115 : || !
21116 : #line 30636 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21117 : (TARGET_AVX512CD))
21118 : return -1;
21119 : return 10139; /* clzv8di2 */
21120 :
21121 : case E_V4DImode:
21122 : if (!register_operand (operands[0], E_V4DImode)
21123 : || GET_MODE (x3) != E_V4DImode
21124 : || !nonimmediate_operand (operands[1], E_V4DImode)
21125 : || !(
21126 : #line 30636 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21127 : (TARGET_AVX512CD) &&
21128 : #line 497 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21129 : (TARGET_AVX512VL)))
21130 : return -1;
21131 : return 10141; /* clzv4di2 */
21132 :
21133 : case E_V2DImode:
21134 : if (!register_operand (operands[0], E_V2DImode)
21135 : || GET_MODE (x3) != E_V2DImode
21136 : || !nonimmediate_operand (operands[1], E_V2DImode)
21137 : || !(
21138 : #line 30636 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21139 : (TARGET_AVX512CD) &&
21140 : #line 497 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21141 : (TARGET_AVX512VL)))
21142 : return -1;
21143 : return 10143; /* clzv2di2 */
21144 :
21145 : default:
21146 : return -1;
21147 : }
21148 : }
21149 :
21150 : int
21151 : recog_361 (rtx x1 ATTRIBUTE_UNUSED,
21152 : rtx_insn *insn ATTRIBUTE_UNUSED,
21153 : int *pnum_clobbers ATTRIBUTE_UNUSED)
21154 : {
21155 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
21156 : rtx x2, x3;
21157 : int res ATTRIBUTE_UNUSED;
21158 : switch (pattern8 (x1, pnum_clobbers))
21159 : {
21160 : case 0:
21161 : if (!(
21162 : #line 27362 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21163 : (TARGET_CMOVE
21164 : && ix86_pre_reload_split ()) &&
21165 : #line 1237 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21166 : (TARGET_64BIT)))
21167 : return -1;
21168 : *pnum_clobbers = 1;
21169 : return 1872; /* *uminti3_doubleword */
21170 :
21171 : case 1:
21172 : if (!
21173 : #line 27420 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21174 : (TARGET_CMOVE
21175 : && (QImode != QImode || !TARGET_PARTIAL_REG_STALL)
21176 : && ix86_pre_reload_split ()))
21177 : return -1;
21178 : *pnum_clobbers = 1;
21179 : return 1876; /* *uminqi3_1 */
21180 :
21181 : case 2:
21182 : if (!
21183 : #line 27420 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21184 : (TARGET_CMOVE
21185 : && (HImode != QImode || !TARGET_PARTIAL_REG_STALL)
21186 : && ix86_pre_reload_split ()))
21187 : return -1;
21188 : *pnum_clobbers = 1;
21189 : return 1880; /* *uminhi3_1 */
21190 :
21191 : case 3:
21192 : if (!
21193 : #line 3765 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
21194 : (TARGET_SSE4_1 && TARGET_MMX_WITH_SSE))
21195 : return -1;
21196 : return 2237; /* uminv4hi3 */
21197 :
21198 : case 4:
21199 : if (!
21200 : #line 3765 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
21201 : (TARGET_SSE4_1 && TARGET_MMX_WITH_SSE))
21202 : return -1;
21203 : return 2239; /* uminv2si3 */
21204 :
21205 : case 5:
21206 : if (!
21207 : #line 3790 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
21208 : ((TARGET_MMX || TARGET_MMX_WITH_SSE)
21209 : && (TARGET_SSE || TARGET_3DNOW_A)
21210 : && ix86_binary_operator_ok (UMIN, V8QImode, operands)))
21211 : return -1;
21212 : return 2241; /* *mmx_uminv8qi3 */
21213 :
21214 : case 6:
21215 : if (!
21216 : #line 3814 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
21217 : (TARGET_SSE2))
21218 : return -1;
21219 : return 2243; /* uminv4qi3 */
21220 :
21221 : case 7:
21222 : if (!
21223 : #line 3814 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
21224 : (TARGET_SSE2))
21225 : return -1;
21226 : return 2245; /* uminv2qi3 */
21227 :
21228 : case 8:
21229 : if (!
21230 : #line 3827 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
21231 : (TARGET_SSE4_1))
21232 : return -1;
21233 : return 2247; /* uminv2hi3 */
21234 :
21235 : case 9:
21236 : x2 = XEXP (x1, 1);
21237 : x3 = XEXP (x2, 1);
21238 : if (rtx_equal_p (x3, operands[1])
21239 : &&
21240 : #line 27601 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21241 : (TARGET_CMOVE
21242 : && ix86_pre_reload_split ()))
21243 : {
21244 : *pnum_clobbers = 1;
21245 : return 1891; /* *plus_within_uminhi3_1 */
21246 : }
21247 : if (!rtx_equal_p (x3, operands[2])
21248 : || !
21249 : #line 27601 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21250 : (TARGET_CMOVE
21251 : && ix86_pre_reload_split ()))
21252 : return -1;
21253 : *pnum_clobbers = 1;
21254 : return 1892; /* *plus_within_uminhi3_2 */
21255 :
21256 : case 10:
21257 : if (!
21258 : #line 27634 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21259 : (TARGET_CMOVE
21260 : && ix86_pre_reload_split ()))
21261 : return -1;
21262 : *pnum_clobbers = 1;
21263 : return 1902; /* *minus_within_uminhi3 */
21264 :
21265 : default:
21266 : return -1;
21267 : }
21268 : }
21269 :
21270 : int
21271 : recog_367 (rtx x1 ATTRIBUTE_UNUSED,
21272 : rtx_insn *insn ATTRIBUTE_UNUSED,
21273 : int *pnum_clobbers ATTRIBUTE_UNUSED)
21274 : {
21275 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
21276 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
21277 : int res ATTRIBUTE_UNUSED;
21278 : switch (pattern343 (x1))
21279 : {
21280 : case 0:
21281 : x2 = XVECEXP (x1, 0, 0);
21282 : x3 = XEXP (x2, 0);
21283 : operands[0] = x3;
21284 : switch (pattern821 (x1))
21285 : {
21286 : case 0:
21287 : if ((
21288 : #line 16918 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21289 : (((INTVAL (operands[3]) & (4 * BITS_PER_UNIT)) == 0
21290 : || ((INTVAL (operands[3]) & (2 * 4 * BITS_PER_UNIT - 1))
21291 : == (2 * 4 * BITS_PER_UNIT - 1)))
21292 : && ix86_pre_reload_split ()) &&
21293 : #line 1236 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21294 : (!TARGET_64BIT)))
21295 : return 1154; /* *lshrdi3_doubleword_mask */
21296 : break;
21297 :
21298 : case 1:
21299 : if ((
21300 : #line 16918 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21301 : (((INTVAL (operands[3]) & (8 * BITS_PER_UNIT)) == 0
21302 : || ((INTVAL (operands[3]) & (2 * 8 * BITS_PER_UNIT - 1))
21303 : == (2 * 8 * BITS_PER_UNIT - 1)))
21304 : && ix86_pre_reload_split ()) &&
21305 : #line 1237 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21306 : (TARGET_64BIT)))
21307 : return 1156; /* *lshrti3_doubleword_mask */
21308 : break;
21309 :
21310 : case 2:
21311 : if ((
21312 : #line 2291 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21313 : (TARGET_AVX512F) &&
21314 : #line 2093 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21315 : (TARGET_AVX512DQ)))
21316 : return 2664; /* klshiftrtqi */
21317 : break;
21318 :
21319 : case 3:
21320 : if (
21321 : #line 2291 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21322 : (TARGET_AVX512F))
21323 : return 2666; /* klshiftrthi */
21324 : break;
21325 :
21326 : case 4:
21327 : if ((
21328 : #line 2291 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21329 : (TARGET_AVX512F) &&
21330 : #line 2093 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21331 : (TARGET_AVX512BW)))
21332 : return 2668; /* klshiftrtsi */
21333 : break;
21334 :
21335 : case 5:
21336 : if ((
21337 : #line 2291 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21338 : (TARGET_AVX512F) &&
21339 : #line 2093 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21340 : (TARGET_AVX512BW)))
21341 : return 2670; /* klshiftrtdi */
21342 : break;
21343 :
21344 : default:
21345 : break;
21346 : }
21347 : x4 = XEXP (x2, 1);
21348 : x5 = XEXP (x4, 1);
21349 : operands[2] = x5;
21350 : switch (pattern822 (x1))
21351 : {
21352 : case 0:
21353 : operands[0] = x3;
21354 : switch (GET_MODE (operands[0]))
21355 : {
21356 : case E_DImode:
21357 : if (register_operand (operands[0], E_DImode)
21358 : && GET_MODE (x4) == E_DImode
21359 : && register_operand (operands[1], E_DImode)
21360 : &&
21361 : #line 1196 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21362 : (!TARGET_64BIT))
21363 : return 1162; /* lshrdi3_doubleword */
21364 : break;
21365 :
21366 : case E_TImode:
21367 : if (register_operand (operands[0], E_TImode)
21368 : && GET_MODE (x4) == E_TImode
21369 : && register_operand (operands[1], E_TImode)
21370 : &&
21371 : #line 1197 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21372 : (TARGET_64BIT))
21373 : return 1164; /* lshrti3_doubleword */
21374 : break;
21375 :
21376 : case E_SImode:
21377 : if (nonimmediate_operand (operands[0], E_SImode)
21378 : && GET_MODE (x4) == E_SImode
21379 : && nonimmediate_operand (operands[1], E_SImode)
21380 : &&
21381 : #line 17721 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21382 : (ix86_binary_operator_ok (LSHIFTRT, SImode, operands, TARGET_APX_NDD)
21383 : && true))
21384 : return 1213; /* *lshrsi3_1 */
21385 : break;
21386 :
21387 : case E_QImode:
21388 : if (nonimmediate_operand (operands[0], E_QImode)
21389 : && GET_MODE (x4) == E_QImode
21390 : && nonimmediate_operand (operands[1], E_QImode)
21391 : &&
21392 : #line 17897 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21393 : (ix86_binary_operator_ok (LSHIFTRT, QImode, operands, TARGET_APX_NDD)
21394 : && true))
21395 : return 1245; /* *lshrqi3_1 */
21396 : break;
21397 :
21398 : case E_HImode:
21399 : if (nonimmediate_operand (operands[0], E_HImode)
21400 : && GET_MODE (x4) == E_HImode
21401 : && nonimmediate_operand (operands[1], E_HImode)
21402 : &&
21403 : #line 17935 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21404 : (ix86_binary_operator_ok (LSHIFTRT, HImode, operands, TARGET_APX_NDD)
21405 : && true))
21406 : return 1247; /* *lshrhi3_1 */
21407 : break;
21408 :
21409 : case E_V2QImode:
21410 : if (register_operand (operands[0], E_V2QImode)
21411 : && GET_MODE (x4) == E_V2QImode
21412 : && register_operand (operands[1], E_V2QImode)
21413 : &&
21414 : #line 4035 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
21415 : (!TARGET_PARTIAL_REG_STALL || optimize_size))
21416 : return 2271; /* lshrv2qi3 */
21417 : break;
21418 :
21419 : default:
21420 : break;
21421 : }
21422 : break;
21423 :
21424 : case 1:
21425 : x6 = XEXP (x3, 0);
21426 : operands[0] = x6;
21427 : switch (pattern377 (x4))
21428 : {
21429 : case 0:
21430 : if (
21431 : #line 17974 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21432 : (!TARGET_PARTIAL_REG_STALL || optimize_function_for_size_p (cfun)))
21433 : return 1248; /* *lshrqi3_1_slp */
21434 : break;
21435 :
21436 : case 1:
21437 : if (
21438 : #line 17974 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21439 : (!TARGET_PARTIAL_REG_STALL || optimize_function_for_size_p (cfun)))
21440 : return 1250; /* *lshrhi3_1_slp */
21441 : break;
21442 :
21443 : default:
21444 : break;
21445 : }
21446 : break;
21447 :
21448 : default:
21449 : break;
21450 : }
21451 : x7 = XVECEXP (x1, 0, 1);
21452 : if (GET_CODE (x7) != CLOBBER)
21453 : return -1;
21454 : x8 = XEXP (x7, 0);
21455 : if (GET_CODE (x8) != REG
21456 : || REGNO (x8) != 17
21457 : || GET_MODE (x8) != E_CCmode)
21458 : return -1;
21459 : switch (GET_CODE (x5))
21460 : {
21461 : case CONST_INT:
21462 : if (pattern1241 (x2) == 0
21463 : && GET_MODE (x4) == E_DImode
21464 : && nonimmediate_operand (operands[1], E_DImode)
21465 : &&
21466 : #line 17697 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21467 : (TARGET_64BIT))
21468 : return 1211; /* *highpartdisi2 */
21469 : break;
21470 :
21471 : case SUBREG:
21472 : switch (pattern1244 (x2,
21473 : E_SImode))
21474 : {
21475 : case 0:
21476 : if (
21477 : #line 18174 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21478 : (ix86_binary_operator_ok (LSHIFTRT, SImode, operands)
21479 : && (INTVAL (operands[3]) & (4 * BITS_PER_UNIT - 1))
21480 : == 4 * BITS_PER_UNIT - 1
21481 : && ix86_pre_reload_split ()))
21482 : return 1277; /* *lshrsi3_mask */
21483 : break;
21484 :
21485 : case 1:
21486 : if (
21487 : #line 18222 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21488 : (ix86_binary_operator_ok (LSHIFTRT, SImode, operands)
21489 : && (INTVAL (operands[3]) & (4 * BITS_PER_UNIT - 1)) == 0
21490 : && ix86_pre_reload_split ()))
21491 : return 1289; /* *lshrsi3_add */
21492 : break;
21493 :
21494 : case 2:
21495 : if (
21496 : #line 18268 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21497 : (ix86_binary_operator_ok (LSHIFTRT, SImode, operands)
21498 : && ((INTVAL (operands[3]) & (4 * BITS_PER_UNIT - 1)) == 0
21499 : || (INTVAL (operands[3]) & (4 * BITS_PER_UNIT - 1))
21500 : == 4 * BITS_PER_UNIT - 1)
21501 : && ix86_pre_reload_split ()))
21502 : return 1301; /* *lshrsi3_sub */
21503 : break;
21504 :
21505 : default:
21506 : break;
21507 : }
21508 : break;
21509 :
21510 : default:
21511 : break;
21512 : }
21513 : operands[0] = x3;
21514 : if (!nonimmediate_operand (operands[0], E_DImode)
21515 : || GET_MODE (x4) != E_DImode
21516 : || !nonimmediate_operand (operands[1], E_DImode))
21517 : return -1;
21518 : operands[2] = x5;
21519 : if (nonmemory_operand (operands[2], E_QImode)
21520 : && (
21521 : #line 17721 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21522 : (ix86_binary_operator_ok (LSHIFTRT, DImode, operands, TARGET_APX_NDD)
21523 : && true) &&
21524 : #line 1168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21525 : (TARGET_64BIT)))
21526 : return 1215; /* *lshrdi3_1 */
21527 : if (GET_CODE (x5) != SUBREG
21528 : || maybe_ne (SUBREG_BYTE (x5), 0)
21529 : || GET_MODE (x5) != E_QImode)
21530 : return -1;
21531 : x9 = XEXP (x5, 0);
21532 : switch (pattern1242 (x9))
21533 : {
21534 : case 0:
21535 : if (!(
21536 : #line 18174 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21537 : (ix86_binary_operator_ok (LSHIFTRT, DImode, operands)
21538 : && (INTVAL (operands[3]) & (8 * BITS_PER_UNIT - 1))
21539 : == 8 * BITS_PER_UNIT - 1
21540 : && ix86_pre_reload_split ()) &&
21541 : #line 1168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21542 : (TARGET_64BIT)))
21543 : return -1;
21544 : return 1280; /* *lshrdi3_mask */
21545 :
21546 : case 1:
21547 : if (!(
21548 : #line 18222 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21549 : (ix86_binary_operator_ok (LSHIFTRT, DImode, operands)
21550 : && (INTVAL (operands[3]) & (8 * BITS_PER_UNIT - 1)) == 0
21551 : && ix86_pre_reload_split ()) &&
21552 : #line 1168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21553 : (TARGET_64BIT)))
21554 : return -1;
21555 : return 1292; /* *lshrdi3_add */
21556 :
21557 : case 2:
21558 : if (!(
21559 : #line 18268 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21560 : (ix86_binary_operator_ok (LSHIFTRT, DImode, operands)
21561 : && ((INTVAL (operands[3]) & (8 * BITS_PER_UNIT - 1)) == 0
21562 : || (INTVAL (operands[3]) & (8 * BITS_PER_UNIT - 1))
21563 : == 8 * BITS_PER_UNIT - 1)
21564 : && ix86_pre_reload_split ()) &&
21565 : #line 1168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21566 : (TARGET_64BIT)))
21567 : return -1;
21568 : return 1304; /* *lshrdi3_sub */
21569 :
21570 : default:
21571 : return -1;
21572 : }
21573 :
21574 : case 1:
21575 : if (register_operand (operands[0], E_DImode)
21576 : && register_operand (operands[1], E_DImode)
21577 : && (
21578 : #line 16979 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21579 : (((INTVAL (operands[3]) & (4 * BITS_PER_UNIT)) == 0
21580 : || ((INTVAL (operands[3]) & (2 * 4 * BITS_PER_UNIT - 1))
21581 : == (2 * 4 * BITS_PER_UNIT - 1)))
21582 : && ix86_pre_reload_split ()) &&
21583 : #line 1236 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21584 : (!TARGET_64BIT)))
21585 : return 1158; /* *lshrdi3_doubleword_mask_1 */
21586 : if (!nonimmediate_operand (operands[0], E_DImode)
21587 : || !nonimmediate_operand (operands[1], E_DImode)
21588 : || !(
21589 : #line 18199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21590 : (ix86_binary_operator_ok (LSHIFTRT, DImode, operands)
21591 : && (INTVAL (operands[3]) & (8 * BITS_PER_UNIT - 1))
21592 : == 8 * BITS_PER_UNIT - 1
21593 : && ix86_pre_reload_split ()) &&
21594 : #line 1168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21595 : (TARGET_64BIT)))
21596 : return -1;
21597 : return 1286; /* *lshrdi3_mask_1 */
21598 :
21599 : case 2:
21600 : if (!(
21601 : #line 16979 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21602 : (((INTVAL (operands[3]) & (8 * BITS_PER_UNIT)) == 0
21603 : || ((INTVAL (operands[3]) & (2 * 8 * BITS_PER_UNIT - 1))
21604 : == (2 * 8 * BITS_PER_UNIT - 1)))
21605 : && ix86_pre_reload_split ()) &&
21606 : #line 1237 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21607 : (TARGET_64BIT)))
21608 : return -1;
21609 : return 1160; /* *lshrti3_doubleword_mask_1 */
21610 :
21611 : case 3:
21612 : if (!
21613 : #line 18199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21614 : (ix86_binary_operator_ok (LSHIFTRT, SImode, operands)
21615 : && (INTVAL (operands[3]) & (4 * BITS_PER_UNIT - 1))
21616 : == 4 * BITS_PER_UNIT - 1
21617 : && ix86_pre_reload_split ()))
21618 : return -1;
21619 : return 1283; /* *lshrsi3_mask_1 */
21620 :
21621 : case 4:
21622 : if (!
21623 : #line 18246 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21624 : (ix86_binary_operator_ok (LSHIFTRT, SImode, operands)
21625 : && (INTVAL (operands[3]) & (4 * BITS_PER_UNIT - 1)) == 0
21626 : && ix86_pre_reload_split ()))
21627 : return -1;
21628 : return 1295; /* *lshrsi3_add_1 */
21629 :
21630 : case 5:
21631 : if (!(
21632 : #line 18246 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21633 : (ix86_binary_operator_ok (LSHIFTRT, DImode, operands)
21634 : && (INTVAL (operands[3]) & (8 * BITS_PER_UNIT - 1)) == 0
21635 : && ix86_pre_reload_split ()) &&
21636 : #line 1168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21637 : (TARGET_64BIT)))
21638 : return -1;
21639 : return 1298; /* *lshrdi3_add_1 */
21640 :
21641 : case 6:
21642 : if (!
21643 : #line 18301 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21644 : (ix86_binary_operator_ok (LSHIFTRT, SImode, operands)
21645 : && ((INTVAL (operands[3]) & (4 * BITS_PER_UNIT - 1)) == 0
21646 : || (INTVAL (operands[3]) & (4 * BITS_PER_UNIT - 1))
21647 : == 4 * BITS_PER_UNIT - 1)
21648 : && ix86_pre_reload_split ()))
21649 : return -1;
21650 : return 1307; /* *lshrsi3_sub_1 */
21651 :
21652 : case 7:
21653 : if (!(
21654 : #line 18301 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21655 : (ix86_binary_operator_ok (LSHIFTRT, DImode, operands)
21656 : && ((INTVAL (operands[3]) & (8 * BITS_PER_UNIT - 1)) == 0
21657 : || (INTVAL (operands[3]) & (8 * BITS_PER_UNIT - 1))
21658 : == 8 * BITS_PER_UNIT - 1)
21659 : && ix86_pre_reload_split ()) &&
21660 : #line 1168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21661 : (TARGET_64BIT)))
21662 : return -1;
21663 : return 1310; /* *lshrdi3_sub_1 */
21664 :
21665 : default:
21666 : return -1;
21667 : }
21668 : }
21669 :
21670 : int
21671 : recog_381 (rtx x1 ATTRIBUTE_UNUSED,
21672 : rtx_insn *insn ATTRIBUTE_UNUSED,
21673 : int *pnum_clobbers ATTRIBUTE_UNUSED)
21674 : {
21675 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
21676 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
21677 : rtx x10, x11, x12, x13, x14, x15, x16, x17;
21678 : int res ATTRIBUTE_UNUSED;
21679 : x2 = XVECEXP (x1, 0, 0);
21680 : x3 = XEXP (x2, 1);
21681 : x4 = XEXP (x3, 0);
21682 : switch (GET_CODE (x4))
21683 : {
21684 : case REG:
21685 : case SUBREG:
21686 : case MEM:
21687 : operands[1] = x4;
21688 : if (pattern344 (x1) != 0)
21689 : return -1;
21690 : switch (pattern1162 (x3))
21691 : {
21692 : case 0:
21693 : if (!
21694 : #line 4850 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21695 : (TARGET_ZERO_EXTEND_WITH_AND && optimize_function_for_speed_p (cfun)))
21696 : return -1;
21697 : return 182; /* zero_extendqisi2_and */
21698 :
21699 : case 1:
21700 : if (!
21701 : #line 4850 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21702 : (TARGET_ZERO_EXTEND_WITH_AND && optimize_function_for_speed_p (cfun)))
21703 : return -1;
21704 : return 183; /* zero_extendhisi2_and */
21705 :
21706 : case 2:
21707 : if (!
21708 : #line 4904 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21709 : (TARGET_ZERO_EXTEND_WITH_AND && optimize_function_for_speed_p (cfun)))
21710 : return -1;
21711 : return 186; /* zero_extendqihi2_and */
21712 :
21713 : default:
21714 : return -1;
21715 : }
21716 :
21717 : case PLUS:
21718 : return recog_379 (x1, insn, pnum_clobbers);
21719 :
21720 : case MINUS:
21721 : return recog_380 (x1, insn, pnum_clobbers);
21722 :
21723 : case MULT:
21724 : if (pattern345 (x1) != 0)
21725 : return -1;
21726 : switch (GET_MODE (operands[0]))
21727 : {
21728 : case E_SImode:
21729 : if (!register_operand (operands[0], E_SImode)
21730 : || GET_MODE (x3) != E_SImode
21731 : || GET_MODE (x4) != E_HImode
21732 : || !nonimmediate_operand (operands[1], E_HImode)
21733 : || !immediate_operand (operands[2], E_HImode)
21734 : || !
21735 : #line 10986 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21736 : (TARGET_APX_ZU && true))
21737 : return -1;
21738 : return 625; /* *imulhisizu */
21739 :
21740 : case E_DImode:
21741 : if (!register_operand (operands[0], E_DImode)
21742 : || GET_MODE (x3) != E_DImode)
21743 : return -1;
21744 : switch (GET_MODE (x4))
21745 : {
21746 : case E_HImode:
21747 : if (!nonimmediate_operand (operands[1], E_HImode)
21748 : || !immediate_operand (operands[2], E_HImode)
21749 : || !
21750 : #line 10986 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21751 : (TARGET_APX_ZU && true))
21752 : return -1;
21753 : return 627; /* *imulhidizu */
21754 :
21755 : case E_SImode:
21756 : if (!nonimmediate_operand (operands[1], E_SImode)
21757 : || !x86_64_general_operand (operands[2], E_SImode)
21758 : || !
21759 : #line 10998 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21760 : (TARGET_64BIT
21761 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))
21762 : && true))
21763 : return -1;
21764 : return 629; /* *mulsi3_1_zext */
21765 :
21766 : default:
21767 : return -1;
21768 : }
21769 :
21770 : default:
21771 : return -1;
21772 : }
21773 :
21774 : case DIV:
21775 : if (pattern346 (x1, pnum_clobbers,
21776 : MOD) != 0)
21777 : return -1;
21778 : x5 = XEXP (x4, 0);
21779 : operands[2] = x5;
21780 : if (!register_operand (operands[2], E_SImode))
21781 : return -1;
21782 : x6 = XEXP (x4, 1);
21783 : operands[3] = x6;
21784 : if (!nonimmediate_operand (operands[3], E_SImode))
21785 : return -1;
21786 : x7 = XVECEXP (x1, 0, 1);
21787 : x8 = XEXP (x7, 0);
21788 : operands[1] = x8;
21789 : if (!register_operand (operands[1], E_SImode))
21790 : return -1;
21791 : x9 = XEXP (x7, 1);
21792 : x10 = XEXP (x9, 0);
21793 : if (!rtx_equal_p (x10, operands[2]))
21794 : return -1;
21795 : x11 = XEXP (x9, 1);
21796 : if (!rtx_equal_p (x11, operands[3])
21797 : || !
21798 : #line 12027 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21799 : (TARGET_64BIT))
21800 : return -1;
21801 : *pnum_clobbers = 1;
21802 : return 683; /* *divmodsi4_zext_1 */
21803 :
21804 : case UDIV:
21805 : if (pattern346 (x1, pnum_clobbers,
21806 : UMOD) != 0)
21807 : return -1;
21808 : x5 = XEXP (x4, 0);
21809 : operands[2] = x5;
21810 : if (!register_operand (operands[2], E_SImode))
21811 : return -1;
21812 : x6 = XEXP (x4, 1);
21813 : operands[3] = x6;
21814 : x7 = XVECEXP (x1, 0, 1);
21815 : x8 = XEXP (x7, 0);
21816 : operands[1] = x8;
21817 : if (!register_operand (operands[1], E_SImode))
21818 : return -1;
21819 : x9 = XEXP (x7, 1);
21820 : switch (pattern1635 (x9))
21821 : {
21822 : case 0:
21823 : if (!
21824 : #line 12062 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21825 : (TARGET_64BIT))
21826 : return -1;
21827 : *pnum_clobbers = 1;
21828 : return 684; /* *udivmodsi4_zext_1 */
21829 :
21830 : case 1:
21831 : if (!
21832 : #line 12084 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21833 : (TARGET_64BIT
21834 : && IN_RANGE (exact_log2 (UINTVAL (operands[3])), 1, 31)))
21835 : return -1;
21836 : *pnum_clobbers = 1;
21837 : return 685; /* *udivmodsi4_pow2_zext_1 */
21838 :
21839 : default:
21840 : return -1;
21841 : }
21842 :
21843 : case MOD:
21844 : if (pattern347 (x1, pnum_clobbers,
21845 : DIV) != 0)
21846 : return -1;
21847 : x5 = XEXP (x4, 0);
21848 : operands[2] = x5;
21849 : if (!register_operand (operands[2], E_SImode))
21850 : return -1;
21851 : x6 = XEXP (x4, 1);
21852 : operands[3] = x6;
21853 : if (!nonimmediate_operand (operands[3], E_SImode))
21854 : return -1;
21855 : x7 = XVECEXP (x1, 0, 1);
21856 : x8 = XEXP (x7, 0);
21857 : operands[0] = x8;
21858 : if (!register_operand (operands[0], E_SImode))
21859 : return -1;
21860 : x9 = XEXP (x7, 1);
21861 : x10 = XEXP (x9, 0);
21862 : if (!rtx_equal_p (x10, operands[2]))
21863 : return -1;
21864 : x11 = XEXP (x9, 1);
21865 : if (!rtx_equal_p (x11, operands[3])
21866 : || !
21867 : #line 12110 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21868 : (TARGET_64BIT))
21869 : return -1;
21870 : *pnum_clobbers = 1;
21871 : return 686; /* *divmodsi4_zext_2 */
21872 :
21873 : case UMOD:
21874 : if (pattern347 (x1, pnum_clobbers,
21875 : UDIV) != 0)
21876 : return -1;
21877 : x5 = XEXP (x4, 0);
21878 : operands[2] = x5;
21879 : if (!register_operand (operands[2], E_SImode))
21880 : return -1;
21881 : x6 = XEXP (x4, 1);
21882 : operands[3] = x6;
21883 : x7 = XVECEXP (x1, 0, 1);
21884 : x8 = XEXP (x7, 0);
21885 : operands[0] = x8;
21886 : if (!register_operand (operands[0], E_SImode))
21887 : return -1;
21888 : x9 = XEXP (x7, 1);
21889 : switch (pattern1635 (x9))
21890 : {
21891 : case 0:
21892 : if (!
21893 : #line 12146 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21894 : (TARGET_64BIT))
21895 : return -1;
21896 : *pnum_clobbers = 1;
21897 : return 687; /* *udivmodsi4_zext_2 */
21898 :
21899 : case 1:
21900 : if (!
21901 : #line 12168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21902 : (TARGET_64BIT
21903 : && IN_RANGE (exact_log2 (UINTVAL (operands[3])), 1, 31)))
21904 : return -1;
21905 : *pnum_clobbers = 1;
21906 : return 688; /* *udivmodsi4_pow2_zext_2 */
21907 :
21908 : default:
21909 : return -1;
21910 : }
21911 :
21912 : case AND:
21913 : if (pattern344 (x1) != 0)
21914 : return -1;
21915 : x5 = XEXP (x4, 0);
21916 : switch (GET_CODE (x5))
21917 : {
21918 : case REG:
21919 : case SUBREG:
21920 : case MEM:
21921 : switch (pattern1049 (x3))
21922 : {
21923 : case 0:
21924 : if (!
21925 : #line 12968 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21926 : (TARGET_APX_NDD && true
21927 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
21928 : return -1;
21929 : return 737; /* *andqi_1_zexthi */
21930 :
21931 : case 1:
21932 : if (!
21933 : #line 12968 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21934 : (TARGET_APX_NDD && true
21935 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
21936 : return -1;
21937 : return 739; /* *andqi_1_zextsi */
21938 :
21939 : case 2:
21940 : if (!
21941 : #line 12982 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21942 : (TARGET_APX_NDD && true
21943 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
21944 : return -1;
21945 : return 743; /* *andhi_1_zextsi */
21946 :
21947 : case 3:
21948 : if (!
21949 : #line 12968 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21950 : (TARGET_APX_NDD && true
21951 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
21952 : return -1;
21953 : return 741; /* *andqi_1_zextdi */
21954 :
21955 : case 4:
21956 : if (!
21957 : #line 12982 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21958 : (TARGET_APX_NDD && true
21959 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
21960 : return -1;
21961 : return 745; /* *andhi_1_zextdi */
21962 :
21963 : case 5:
21964 : if (!
21965 : #line 12998 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21966 : (TARGET_64BIT
21967 : && ix86_binary_operator_ok (AND, SImode, operands, TARGET_APX_NDD)))
21968 : return -1;
21969 : return 746; /* *andsi_1_zext */
21970 :
21971 : default:
21972 : return -1;
21973 : }
21974 :
21975 : case PLUS:
21976 : if (pattern704 (x5) != 0
21977 : || !register_operand (operands[0], E_DImode)
21978 : || GET_MODE (x3) != E_DImode
21979 : || GET_MODE (x4) != E_SImode)
21980 : return -1;
21981 : x12 = XEXP (x5, 0);
21982 : x13 = XEXP (x12, 1);
21983 : operands[2] = x13;
21984 : if (!register_operand (operands[2], E_QImode))
21985 : return -1;
21986 : x6 = XEXP (x4, 1);
21987 : operands[1] = x6;
21988 : if (!nonimmediate_operand (operands[1], E_SImode)
21989 : || !
21990 : #line 22474 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21991 : (TARGET_64BIT && TARGET_BMI2))
21992 : return -1;
21993 : return 1632; /* *bmi2_bzhi_zero_extendsidi_4 */
21994 :
21995 : default:
21996 : return -1;
21997 : }
21998 :
21999 : case IOR:
22000 : if (pattern348 (x1) != 0)
22001 : return -1;
22002 : switch (pattern1049 (x3))
22003 : {
22004 : case 0:
22005 : if (!
22006 : #line 14035 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22007 : (TARGET_APX_NDD && true
22008 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
22009 : return -1;
22010 : return 872; /* *iorqi_1_zexthi */
22011 :
22012 : case 1:
22013 : if (!
22014 : #line 14035 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22015 : (TARGET_APX_NDD && true
22016 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
22017 : return -1;
22018 : return 876; /* *iorqi_1_zextsi */
22019 :
22020 : case 2:
22021 : if (!
22022 : #line 14049 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22023 : (TARGET_APX_NDD && true
22024 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
22025 : return -1;
22026 : return 884; /* *iorhi_1_zextsi */
22027 :
22028 : case 3:
22029 : if (!
22030 : #line 14035 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22031 : (TARGET_APX_NDD && true
22032 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
22033 : return -1;
22034 : return 880; /* *iorqi_1_zextdi */
22035 :
22036 : case 4:
22037 : if (!
22038 : #line 14049 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22039 : (TARGET_APX_NDD && true
22040 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
22041 : return -1;
22042 : return 888; /* *iorhi_1_zextdi */
22043 :
22044 : case 5:
22045 : if (!
22046 : #line 14065 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22047 : (TARGET_64BIT
22048 : && ix86_binary_operator_ok (IOR, SImode, operands, TARGET_APX_NDD)))
22049 : return -1;
22050 : return 891; /* *iorsi_1_zext */
22051 :
22052 : default:
22053 : return -1;
22054 : }
22055 :
22056 : case XOR:
22057 : if (pattern344 (x1) != 0)
22058 : return -1;
22059 : x5 = XEXP (x4, 0);
22060 : switch (GET_CODE (x5))
22061 : {
22062 : case REG:
22063 : case SUBREG:
22064 : case MEM:
22065 : switch (pattern1049 (x3))
22066 : {
22067 : case 0:
22068 : if (!
22069 : #line 14035 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22070 : (TARGET_APX_NDD && true
22071 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
22072 : return -1;
22073 : return 874; /* *xorqi_1_zexthi */
22074 :
22075 : case 1:
22076 : if (!
22077 : #line 14035 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22078 : (TARGET_APX_NDD && true
22079 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
22080 : return -1;
22081 : return 878; /* *xorqi_1_zextsi */
22082 :
22083 : case 2:
22084 : if (!
22085 : #line 14049 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22086 : (TARGET_APX_NDD && true
22087 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
22088 : return -1;
22089 : return 886; /* *xorhi_1_zextsi */
22090 :
22091 : case 3:
22092 : if (!
22093 : #line 14035 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22094 : (TARGET_APX_NDD && true
22095 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
22096 : return -1;
22097 : return 882; /* *xorqi_1_zextdi */
22098 :
22099 : case 4:
22100 : if (!
22101 : #line 14049 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22102 : (TARGET_APX_NDD && true
22103 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
22104 : return -1;
22105 : return 890; /* *xorhi_1_zextdi */
22106 :
22107 : case 5:
22108 : if (!
22109 : #line 14065 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22110 : (TARGET_64BIT
22111 : && ix86_binary_operator_ok (XOR, SImode, operands, TARGET_APX_NDD)))
22112 : return -1;
22113 : return 892; /* *xorsi_1_zext */
22114 :
22115 : default:
22116 : return -1;
22117 : }
22118 :
22119 : case MINUS:
22120 : if (pattern1166 (x4) != 0
22121 : || !register_operand (operands[0], E_DImode)
22122 : || GET_MODE (x3) != E_DImode
22123 : || GET_MODE (x4) != E_SImode)
22124 : return -1;
22125 : x14 = XEXP (x5, 1);
22126 : x15 = XEXP (x14, 0);
22127 : operands[1] = x15;
22128 : if (!nonimmediate_operand (operands[1], E_SImode)
22129 : || !
22130 : #line 21705 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22131 : (!TARGET_LZCNT && TARGET_64BIT && ix86_pre_reload_split ()))
22132 : return -1;
22133 : return 1565; /* *bsru_2 */
22134 :
22135 : default:
22136 : return -1;
22137 : }
22138 :
22139 : case NEG:
22140 : if (pattern349 (x1) != 0)
22141 : return -1;
22142 : switch (pattern351 (x3))
22143 : {
22144 : case 0:
22145 : if (!
22146 : #line 14696 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22147 : (TARGET_APX_NDD && true))
22148 : return -1;
22149 : return 995; /* *negqi_1_zexthi */
22150 :
22151 : case 1:
22152 : if (!
22153 : #line 14696 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22154 : (TARGET_APX_NDD && true))
22155 : return -1;
22156 : return 997; /* *negqi_1_zextsi */
22157 :
22158 : case 2:
22159 : if (!
22160 : #line 14706 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22161 : (TARGET_APX_NDD && true))
22162 : return -1;
22163 : return 1001; /* *neghi_1_zextsi */
22164 :
22165 : case 3:
22166 : if (!
22167 : #line 14696 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22168 : (TARGET_APX_NDD && true))
22169 : return -1;
22170 : return 999; /* *negqi_1_zextdi */
22171 :
22172 : case 4:
22173 : if (!
22174 : #line 14706 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22175 : (TARGET_APX_NDD && true))
22176 : return -1;
22177 : return 1003; /* *neghi_1_zextdi */
22178 :
22179 : case 5:
22180 : if (!
22181 : #line 14717 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22182 : (TARGET_64BIT
22183 : && ix86_unary_operator_ok (NEG, SImode, operands, TARGET_APX_NDD)))
22184 : return -1;
22185 : return 1004; /* *negsi_1_zext */
22186 :
22187 : default:
22188 : return -1;
22189 : }
22190 :
22191 : case ASHIFT:
22192 : switch (pattern353 (x1))
22193 : {
22194 : case 0:
22195 : if (!
22196 : #line 16346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22197 : (TARGET_APX_NDD && true))
22198 : return -1;
22199 : return 1126; /* *ashlqi3_1_zexthi */
22200 :
22201 : case 1:
22202 : if (!
22203 : #line 16346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22204 : (TARGET_APX_NDD && true))
22205 : return -1;
22206 : return 1128; /* *ashlqi3_1_zextsi */
22207 :
22208 : case 2:
22209 : if (!
22210 : #line 16357 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22211 : (TARGET_APX_NDD && true))
22212 : return -1;
22213 : return 1132; /* *ashlhi3_1_zextsi */
22214 :
22215 : case 3:
22216 : if (!
22217 : #line 16346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22218 : (TARGET_APX_NDD && true))
22219 : return -1;
22220 : return 1130; /* *ashlqi3_1_zextdi */
22221 :
22222 : case 4:
22223 : if (!
22224 : #line 16357 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22225 : (TARGET_APX_NDD && true))
22226 : return -1;
22227 : return 1134; /* *ashlhi3_1_zextdi */
22228 :
22229 : case 5:
22230 : if (!
22231 : #line 16369 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22232 : (TARGET_64BIT
22233 : && ix86_binary_operator_ok (ASHIFT, SImode, operands, TARGET_APX_NDD)))
22234 : return -1;
22235 : return 1135; /* *ashlsi3_1_zext */
22236 :
22237 : default:
22238 : return -1;
22239 : }
22240 :
22241 : case ASHIFTRT:
22242 : if (pattern345 (x1) != 0)
22243 : return -1;
22244 : switch (GET_MODE (operands[0]))
22245 : {
22246 : case E_DImode:
22247 : if (!register_operand (operands[0], E_DImode)
22248 : || GET_MODE (x3) != E_DImode)
22249 : return -1;
22250 : switch (GET_MODE (x4))
22251 : {
22252 : case E_SImode:
22253 : if (!nonimmediate_operand (operands[1], E_SImode))
22254 : return -1;
22255 : if (const_int_operand (operands[2], E_QImode)
22256 : &&
22257 : #line 17602 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22258 : (TARGET_64BIT && INTVAL (operands[2]) == 31
22259 : && (TARGET_USE_CLTD || optimize_function_for_size_p (cfun))
22260 : && ix86_binary_operator_ok (ASHIFTRT, SImode, operands, TARGET_APX_NDD)))
22261 : return 1202; /* *ashrsi3_cvt_zext */
22262 : if (!nonmemory_operand (operands[2], E_QImode)
22263 : || !
22264 : #line 17814 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22265 : (TARGET_64BIT
22266 : && ix86_binary_operator_ok (ASHIFTRT, SImode, operands, TARGET_APX_NDD)))
22267 : return -1;
22268 : return 1239; /* *ashrsi3_1_zext */
22269 :
22270 : case E_QImode:
22271 : if (!nonimmediate_operand (operands[1], E_QImode)
22272 : || !nonmemory_operand (operands[2], E_QImode)
22273 : || !
22274 : #line 17791 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22275 : (TARGET_APX_NDD && true))
22276 : return -1;
22277 : return 1229; /* *ashrqi3_1_zextdi */
22278 :
22279 : case E_HImode:
22280 : if (!nonimmediate_operand (operands[1], E_HImode)
22281 : || !nonmemory_operand (operands[2], E_QImode)
22282 : || !
22283 : #line 17802 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22284 : (TARGET_APX_NDD && true))
22285 : return -1;
22286 : return 1237; /* *ashrhi3_1_zextdi */
22287 :
22288 : default:
22289 : return -1;
22290 : }
22291 :
22292 : case E_HImode:
22293 : if (!register_operand (operands[0], E_HImode)
22294 : || GET_MODE (x3) != E_HImode
22295 : || GET_MODE (x4) != E_QImode
22296 : || !nonimmediate_operand (operands[1], E_QImode)
22297 : || !nonmemory_operand (operands[2], E_QImode)
22298 : || !
22299 : #line 17791 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22300 : (TARGET_APX_NDD && true))
22301 : return -1;
22302 : return 1221; /* *ashrqi3_1_zexthi */
22303 :
22304 : case E_SImode:
22305 : if (!register_operand (operands[0], E_SImode)
22306 : || GET_MODE (x3) != E_SImode
22307 : || !nonmemory_operand (operands[2], E_QImode))
22308 : return -1;
22309 : switch (GET_MODE (x4))
22310 : {
22311 : case E_QImode:
22312 : if (!nonimmediate_operand (operands[1], E_QImode)
22313 : || !
22314 : #line 17791 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22315 : (TARGET_APX_NDD && true))
22316 : return -1;
22317 : return 1225; /* *ashrqi3_1_zextsi */
22318 :
22319 : case E_HImode:
22320 : if (!nonimmediate_operand (operands[1], E_HImode)
22321 : || !
22322 : #line 17802 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22323 : (TARGET_APX_NDD && true))
22324 : return -1;
22325 : return 1233; /* *ashrhi3_1_zextsi */
22326 :
22327 : default:
22328 : return -1;
22329 : }
22330 :
22331 : default:
22332 : return -1;
22333 : }
22334 :
22335 : case LSHIFTRT:
22336 : x16 = XEXP (x2, 0);
22337 : operands[0] = x16;
22338 : x5 = XEXP (x4, 0);
22339 : operands[1] = x5;
22340 : x6 = XEXP (x4, 1);
22341 : operands[2] = x6;
22342 : x7 = XVECEXP (x1, 0, 1);
22343 : switch (GET_CODE (x7))
22344 : {
22345 : case CLOBBER:
22346 : x8 = XEXP (x7, 0);
22347 : if (GET_CODE (x8) != REG
22348 : || REGNO (x8) != 17
22349 : || GET_MODE (x8) != E_CCmode)
22350 : return -1;
22351 : switch (pattern352 (x3))
22352 : {
22353 : case 0:
22354 : if (!
22355 : #line 17791 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22356 : (TARGET_APX_NDD && true))
22357 : return -1;
22358 : return 1219; /* *lshrqi3_1_zexthi */
22359 :
22360 : case 1:
22361 : if (!
22362 : #line 17791 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22363 : (TARGET_APX_NDD && true))
22364 : return -1;
22365 : return 1223; /* *lshrqi3_1_zextsi */
22366 :
22367 : case 2:
22368 : if (!
22369 : #line 17802 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22370 : (TARGET_APX_NDD && true))
22371 : return -1;
22372 : return 1231; /* *lshrhi3_1_zextsi */
22373 :
22374 : case 3:
22375 : if (!
22376 : #line 17791 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22377 : (TARGET_APX_NDD && true))
22378 : return -1;
22379 : return 1227; /* *lshrqi3_1_zextdi */
22380 :
22381 : case 4:
22382 : if (!
22383 : #line 17802 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22384 : (TARGET_APX_NDD && true))
22385 : return -1;
22386 : return 1235; /* *lshrhi3_1_zextdi */
22387 :
22388 : case 5:
22389 : if (!
22390 : #line 17814 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22391 : (TARGET_64BIT
22392 : && ix86_binary_operator_ok (LSHIFTRT, SImode, operands, TARGET_APX_NDD)))
22393 : return -1;
22394 : return 1238; /* *lshrsi3_1_zext */
22395 :
22396 : default:
22397 : return -1;
22398 : }
22399 :
22400 : case UNSPEC:
22401 : if (XVECLEN (x7, 0) != 1
22402 : || XINT (x7, 1) != 175)
22403 : return -1;
22404 : x17 = XVECEXP (x7, 0, 0);
22405 : if (x17 != const_int_rtx[MAX_SAVED_CONST_INT + 0]
22406 : || pattern1239 (x3,
22407 : E_SImode,
22408 : E_DImode) != 0
22409 : || !const_0_to_31_operand (operands[2], E_VOIDmode)
22410 : || !
22411 : #line 2330 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22412 : (TARGET_AVX512BW))
22413 : return -1;
22414 : return 2671; /* *klshrsi3_1_zext */
22415 :
22416 : default:
22417 : return -1;
22418 : }
22419 :
22420 : case ROTATE:
22421 : switch (pattern353 (x1))
22422 : {
22423 : case 0:
22424 : if (!
22425 : #line 18930 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22426 : (TARGET_APX_NDD && true))
22427 : return -1;
22428 : return 1384; /* *rotlqi3_1_zexthi */
22429 :
22430 : case 1:
22431 : if (!
22432 : #line 18930 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22433 : (TARGET_APX_NDD && true))
22434 : return -1;
22435 : return 1388; /* *rotlqi3_1_zextsi */
22436 :
22437 : case 2:
22438 : if (!
22439 : #line 18941 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22440 : (TARGET_APX_NDD && true))
22441 : return -1;
22442 : return 1396; /* *rotlhi3_1_zextsi */
22443 :
22444 : case 3:
22445 : if (!
22446 : #line 18930 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22447 : (TARGET_APX_NDD && true))
22448 : return -1;
22449 : return 1392; /* *rotlqi3_1_zextdi */
22450 :
22451 : case 4:
22452 : if (!
22453 : #line 18941 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22454 : (TARGET_APX_NDD && true))
22455 : return -1;
22456 : return 1400; /* *rotlhi3_1_zextdi */
22457 :
22458 : case 5:
22459 : if (!
22460 : #line 18953 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22461 : (TARGET_64BIT && ix86_binary_operator_ok (ROTATE, SImode, operands)))
22462 : return -1;
22463 : return 1403; /* *rotlsi3_1_zext */
22464 :
22465 : default:
22466 : return -1;
22467 : }
22468 :
22469 : case ROTATERT:
22470 : switch (pattern353 (x1))
22471 : {
22472 : case 0:
22473 : if (!
22474 : #line 18930 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22475 : (TARGET_APX_NDD && true))
22476 : return -1;
22477 : return 1386; /* *rotrqi3_1_zexthi */
22478 :
22479 : case 1:
22480 : if (!
22481 : #line 18930 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22482 : (TARGET_APX_NDD && true))
22483 : return -1;
22484 : return 1390; /* *rotrqi3_1_zextsi */
22485 :
22486 : case 2:
22487 : if (!
22488 : #line 18941 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22489 : (TARGET_APX_NDD && true))
22490 : return -1;
22491 : return 1398; /* *rotrhi3_1_zextsi */
22492 :
22493 : case 3:
22494 : if (!
22495 : #line 18930 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22496 : (TARGET_APX_NDD && true))
22497 : return -1;
22498 : return 1394; /* *rotrqi3_1_zextdi */
22499 :
22500 : case 4:
22501 : if (!
22502 : #line 18941 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22503 : (TARGET_APX_NDD && true))
22504 : return -1;
22505 : return 1402; /* *rotrhi3_1_zextdi */
22506 :
22507 : case 5:
22508 : if (!
22509 : #line 18953 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22510 : (TARGET_64BIT && ix86_binary_operator_ok (ROTATERT, SImode, operands)))
22511 : return -1;
22512 : return 1404; /* *rotrsi3_1_zext */
22513 :
22514 : default:
22515 : return -1;
22516 : }
22517 :
22518 : case CTZ:
22519 : if (GET_MODE (x4) != E_SImode)
22520 : return -1;
22521 : x16 = XEXP (x2, 0);
22522 : operands[0] = x16;
22523 : if (!register_operand (operands[0], E_DImode)
22524 : || GET_MODE (x3) != E_DImode)
22525 : return -1;
22526 : switch (pattern939 (x1, pnum_clobbers))
22527 : {
22528 : case 0:
22529 : if (!
22530 : #line 21532 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22531 : (TARGET_64BIT))
22532 : return -1;
22533 : return 1553; /* *ctzsidi2_uext */
22534 :
22535 : case 1:
22536 : if (!
22537 : #line 21572 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22538 : (TARGET_64BIT))
22539 : return -1;
22540 : *pnum_clobbers = 1;
22541 : return 1555; /* *ctzsidi2_uext_falsedep */
22542 :
22543 : default:
22544 : return -1;
22545 : }
22546 :
22547 : case CLZ:
22548 : if (GET_MODE (x4) != E_SImode)
22549 : return -1;
22550 : x16 = XEXP (x2, 0);
22551 : operands[0] = x16;
22552 : if (!register_operand (operands[0], E_DImode)
22553 : || GET_MODE (x3) != E_DImode)
22554 : return -1;
22555 : switch (pattern557 (x1, pnum_clobbers))
22556 : {
22557 : case 0:
22558 : if (!nonimmediate_operand (operands[1], E_SImode)
22559 : || !
22560 : #line 21969 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22561 : (TARGET_LZCNT && TARGET_64BIT))
22562 : return -1;
22563 : return 1577; /* *clzsi2_lzcnt_zext_2 */
22564 :
22565 : case 1:
22566 : x7 = XVECEXP (x1, 0, 1);
22567 : x17 = XVECEXP (x7, 0, 0);
22568 : switch (pattern1433 (x17))
22569 : {
22570 : case 0:
22571 : if (!
22572 : #line 21994 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22573 : (TARGET_LZCNT))
22574 : return -1;
22575 : *pnum_clobbers = 1;
22576 : return 1578; /* *clzsi2_lzcnt_zext_2_falsedep */
22577 :
22578 : case 1:
22579 : if (!(
22580 : #line 21994 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22581 : (TARGET_LZCNT) &&
22582 : #line 1168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22583 : (TARGET_64BIT)))
22584 : return -1;
22585 : *pnum_clobbers = 1;
22586 : return 1579; /* *clzsi2_lzcnt_zext_2_falsedep */
22587 :
22588 : default:
22589 : return -1;
22590 : }
22591 :
22592 : default:
22593 : return -1;
22594 : }
22595 :
22596 : case POPCOUNT:
22597 : x16 = XEXP (x2, 0);
22598 : operands[0] = x16;
22599 : switch (pattern557 (x1, pnum_clobbers))
22600 : {
22601 : case 0:
22602 : switch (GET_MODE (operands[0]))
22603 : {
22604 : case E_DImode:
22605 : if (pattern350 (x3,
22606 : E_SImode,
22607 : E_DImode) != 0
22608 : || !
22609 : #line 22808 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22610 : (TARGET_POPCNT && TARGET_64BIT))
22611 : return -1;
22612 : return 1668; /* *popcountsi2_zext_2 */
22613 :
22614 : case E_SImode:
22615 : if (pattern350 (x3,
22616 : E_HImode,
22617 : E_SImode) != 0
22618 : || !
22619 : #line 22874 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22620 : (TARGET_POPCNT
22621 : && ix86_pre_reload_split ()))
22622 : return -1;
22623 : return 1671; /* *popcounthi2_2 */
22624 :
22625 : default:
22626 : return -1;
22627 : }
22628 :
22629 : case 1:
22630 : if (!register_operand (operands[0], E_DImode)
22631 : || GET_MODE (x3) != E_DImode
22632 : || GET_MODE (x4) != E_SImode
22633 : || !nonimmediate_operand (operands[1], E_SImode))
22634 : return -1;
22635 : x7 = XVECEXP (x1, 0, 1);
22636 : x17 = XVECEXP (x7, 0, 0);
22637 : operands[2] = x17;
22638 : if (!register_operand (operands[2], E_DImode)
22639 : || !
22640 : #line 22839 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22641 : (TARGET_POPCNT && TARGET_64BIT))
22642 : return -1;
22643 : *pnum_clobbers = 1;
22644 : return 1669; /* *popcountsi2_zext_2_falsedep */
22645 :
22646 : default:
22647 : return -1;
22648 : }
22649 :
22650 : case NOT:
22651 : if (GET_MODE (x4) != E_SImode)
22652 : return -1;
22653 : x7 = XVECEXP (x1, 0, 1);
22654 : if (pattern384 (x7,
22655 : 175,
22656 : 0) != 0)
22657 : return -1;
22658 : x16 = XEXP (x2, 0);
22659 : operands[0] = x16;
22660 : if (!register_operand (operands[0], E_DImode)
22661 : || GET_MODE (x3) != E_DImode)
22662 : return -1;
22663 : x5 = XEXP (x4, 0);
22664 : operands[1] = x5;
22665 : if (!register_operand (operands[1], E_SImode)
22666 : || !
22667 : #line 2253 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22668 : (TARGET_AVX512BW))
22669 : return -1;
22670 : return 2658; /* *knotsi_1_zext */
22671 :
22672 : case UNSPEC:
22673 : return recog_378 (x1, insn, pnum_clobbers);
22674 :
22675 : default:
22676 : return -1;
22677 : }
22678 : }
22679 :
22680 : int
22681 : recog_403 (rtx x1 ATTRIBUTE_UNUSED,
22682 : rtx_insn *insn ATTRIBUTE_UNUSED,
22683 : int *pnum_clobbers ATTRIBUTE_UNUSED)
22684 : {
22685 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
22686 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
22687 : rtx x10, x11, x12, x13;
22688 : int res ATTRIBUTE_UNUSED;
22689 : x2 = XVECEXP (x1, 0, 0);
22690 : x3 = XEXP (x2, 1);
22691 : x4 = XEXP (x3, 0);
22692 : switch (GET_CODE (x4))
22693 : {
22694 : case CONST_INT:
22695 : case CONST_WIDE_INT:
22696 : case CONST_POLY_INT:
22697 : case CONST_FIXED:
22698 : case CONST_DOUBLE:
22699 : case CONST_VECTOR:
22700 : case CONST:
22701 : case REG:
22702 : case SUBREG:
22703 : case MEM:
22704 : case LABEL_REF:
22705 : case SYMBOL_REF:
22706 : case HIGH:
22707 : operands[1] = x4;
22708 : res = recog_402 (x1, insn, pnum_clobbers);
22709 : if (res >= 0)
22710 : return res;
22711 : x5 = XVECEXP (x1, 0, 1);
22712 : if (GET_CODE (x5) != CLOBBER)
22713 : return -1;
22714 : x6 = XEXP (x5, 0);
22715 : if (GET_CODE (x6) != REG
22716 : || REGNO (x6) != 17
22717 : || GET_MODE (x6) != E_CCmode)
22718 : return -1;
22719 : switch (GET_CODE (x4))
22720 : {
22721 : case SUBREG:
22722 : switch (pattern1056 (x2))
22723 : {
22724 : case 0:
22725 : if (!
22726 : #line 8275 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22727 : (!TARGET_PARTIAL_REG_STALL || optimize_function_for_size_p (cfun)))
22728 : return -1;
22729 : return 412; /* *subqi_exthi_2_slp */
22730 :
22731 : case 1:
22732 : if (!
22733 : #line 8275 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22734 : (!TARGET_PARTIAL_REG_STALL || optimize_function_for_size_p (cfun)))
22735 : return -1;
22736 : return 413; /* *subqi_extsi_2_slp */
22737 :
22738 : case 2:
22739 : if (!(
22740 : #line 8275 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22741 : (!TARGET_PARTIAL_REG_STALL || optimize_function_for_size_p (cfun)) &&
22742 : #line 1165 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22743 : (TARGET_64BIT)))
22744 : return -1;
22745 : return 414; /* *subqi_extdi_2_slp */
22746 :
22747 : case 3:
22748 : return 423; /* *subqi_ext2hi_0 */
22749 :
22750 : case 4:
22751 : return 424; /* *subqi_ext2si_0 */
22752 :
22753 : case 5:
22754 : if (!
22755 : #line 1165 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22756 : (TARGET_64BIT))
22757 : return -1;
22758 : return 425; /* *subqi_ext2di_0 */
22759 :
22760 : default:
22761 : return -1;
22762 : }
22763 :
22764 : case CONST_INT:
22765 : x7 = XEXP (x3, 1);
22766 : if (GET_CODE (x7) != CLZ)
22767 : return -1;
22768 : x8 = XEXP (x2, 0);
22769 : operands[0] = x8;
22770 : x9 = XEXP (x7, 0);
22771 : operands[1] = x9;
22772 : switch (XWINT (x4, 0))
22773 : {
22774 : case 63L:
22775 : if (pattern1441 (x3,
22776 : E_DImode) != 0
22777 : || !
22778 : #line 21606 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22779 : (!TARGET_LZCNT && TARGET_64BIT))
22780 : return -1;
22781 : return 1557; /* bsr_rex64_1 */
22782 :
22783 : case 31L:
22784 : if (pattern1441 (x3,
22785 : E_SImode) != 0
22786 : || !
22787 : #line 21647 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22788 : (!TARGET_LZCNT))
22789 : return -1;
22790 : return 1560; /* bsr_1 */
22791 :
22792 : default:
22793 : return -1;
22794 : }
22795 :
22796 : default:
22797 : return -1;
22798 : }
22799 :
22800 : case MINUS:
22801 : x5 = XVECEXP (x1, 0, 1);
22802 : if (pattern355 (x5) != 0)
22803 : return -1;
22804 : x8 = XEXP (x2, 0);
22805 : operands[0] = x8;
22806 : x10 = XEXP (x4, 0);
22807 : operands[1] = x10;
22808 : x7 = XEXP (x3, 1);
22809 : operands[2] = x7;
22810 : x11 = XEXP (x4, 1);
22811 : switch (GET_CODE (x11))
22812 : {
22813 : case LTU:
22814 : case UNLT:
22815 : operands[4] = x11;
22816 : x12 = XEXP (x11, 1);
22817 : if (x12 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
22818 : return -1;
22819 : x13 = XEXP (x11, 0);
22820 : operands[3] = x13;
22821 : if (!flags_reg_operand (operands[3], E_VOIDmode))
22822 : return -1;
22823 : switch (GET_MODE (operands[0]))
22824 : {
22825 : case E_QImode:
22826 : if (pattern1640 (x3,
22827 : E_QImode) != 0
22828 : || !
22829 : #line 9505 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22830 : (ix86_binary_operator_ok (MINUS, QImode, operands, TARGET_APX_NDD)))
22831 : return -1;
22832 : return 503; /* subqi3_carry */
22833 :
22834 : case E_HImode:
22835 : if (pattern1640 (x3,
22836 : E_HImode) != 0
22837 : || !
22838 : #line 9505 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22839 : (ix86_binary_operator_ok (MINUS, HImode, operands, TARGET_APX_NDD)))
22840 : return -1;
22841 : return 504; /* subhi3_carry */
22842 :
22843 : case E_SImode:
22844 : if (pattern1641 (x3,
22845 : E_SImode) != 0
22846 : || !
22847 : #line 9505 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22848 : (ix86_binary_operator_ok (MINUS, SImode, operands, TARGET_APX_NDD)))
22849 : return -1;
22850 : return 505; /* subsi3_carry */
22851 :
22852 : case E_DImode:
22853 : if (pattern1641 (x3,
22854 : E_DImode) != 0
22855 : || !(
22856 : #line 9505 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22857 : (ix86_binary_operator_ok (MINUS, DImode, operands, TARGET_APX_NDD)) &&
22858 : #line 1162 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22859 : (TARGET_64BIT)))
22860 : return -1;
22861 : return 506; /* subdi3_carry */
22862 :
22863 : default:
22864 : return -1;
22865 : }
22866 :
22867 : case EQ:
22868 : x12 = XEXP (x11, 1);
22869 : if (x12 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
22870 : return -1;
22871 : x13 = XEXP (x11, 0);
22872 : operands[3] = x13;
22873 : if (!int_nonimmediate_operand (operands[3], E_VOIDmode))
22874 : return -1;
22875 : switch (GET_MODE (operands[0]))
22876 : {
22877 : case E_QImode:
22878 : if (pattern1577 (x3,
22879 : E_QImode) != 0
22880 : || !
22881 : #line 10573 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22882 : (ix86_binary_operator_ok (MINUS, QImode, operands, TARGET_APX_NDD)
22883 : && ix86_pre_reload_split ()))
22884 : return -1;
22885 : return 598; /* *subqi3_eq */
22886 :
22887 : case E_HImode:
22888 : if (pattern1577 (x3,
22889 : E_HImode) != 0
22890 : || !
22891 : #line 10573 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22892 : (ix86_binary_operator_ok (MINUS, HImode, operands, TARGET_APX_NDD)
22893 : && ix86_pre_reload_split ()))
22894 : return -1;
22895 : return 599; /* *subhi3_eq */
22896 :
22897 : case E_SImode:
22898 : if (pattern1578 (x3,
22899 : E_SImode) != 0
22900 : || !
22901 : #line 10573 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22902 : (ix86_binary_operator_ok (MINUS, SImode, operands, TARGET_APX_NDD)
22903 : && ix86_pre_reload_split ()))
22904 : return -1;
22905 : return 600; /* *subsi3_eq */
22906 :
22907 : case E_DImode:
22908 : if (pattern1578 (x3,
22909 : E_DImode) != 0
22910 : || !(
22911 : #line 10573 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22912 : (ix86_binary_operator_ok (MINUS, DImode, operands, TARGET_APX_NDD)
22913 : && ix86_pre_reload_split ()) &&
22914 : #line 1162 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22915 : (TARGET_64BIT)))
22916 : return -1;
22917 : return 601; /* *subdi3_eq */
22918 :
22919 : default:
22920 : return -1;
22921 : }
22922 :
22923 : default:
22924 : return -1;
22925 : }
22926 :
22927 : default:
22928 : return -1;
22929 : }
22930 : }
22931 :
22932 : int
22933 : recog_409 (rtx x1 ATTRIBUTE_UNUSED,
22934 : rtx_insn *insn ATTRIBUTE_UNUSED,
22935 : int *pnum_clobbers ATTRIBUTE_UNUSED)
22936 : {
22937 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
22938 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
22939 : rtx x10, x11, x12, x13, x14, x15, x16, x17;
22940 : rtx x18, x19, x20;
22941 : int res ATTRIBUTE_UNUSED;
22942 : x2 = XVECEXP (x1, 0, 0);
22943 : x3 = XEXP (x2, 1);
22944 : x4 = XEXP (x3, 0);
22945 : switch (GET_CODE (x4))
22946 : {
22947 : case ASHIFT:
22948 : return recog_408 (x1, insn, pnum_clobbers);
22949 :
22950 : case REG:
22951 : case SUBREG:
22952 : case MEM:
22953 : operands[1] = x4;
22954 : switch (pattern572 (x1))
22955 : {
22956 : case 0:
22957 : if (
22958 : #line 13083 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22959 : (!TARGET_PARTIAL_REG_STALL || optimize_function_for_size_p (cfun)))
22960 : return 754; /* *iorqi_1_slp */
22961 : break;
22962 :
22963 : case 1:
22964 : if (
22965 : #line 13083 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22966 : (!TARGET_PARTIAL_REG_STALL || optimize_function_for_size_p (cfun)))
22967 : return 757; /* *iorhi_1_slp */
22968 : break;
22969 :
22970 : case 2:
22971 : if (x86_64_hilo_general_operand (operands[2], E_DImode)
22972 : && (
22973 : #line 13847 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22974 : (ix86_binary_operator_ok (IOR, DImode, operands, TARGET_APX_NDD)) &&
22975 : #line 1236 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22976 : (!TARGET_64BIT)))
22977 : return 847; /* *iordi3_doubleword */
22978 : if (x86_64_general_operand (operands[2], E_DImode)
22979 : && (
22980 : #line 13905 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22981 : (ix86_binary_operator_ok (IOR, DImode, operands, TARGET_APX_NDD)
22982 : && true) &&
22983 : #line 1165 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22984 : (TARGET_64BIT)))
22985 : return 860; /* *iordi_1 */
22986 : if (const_int_operand (operands[2], E_DImode)
22987 : &&
22988 : #line 13953 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22989 : (TARGET_64BIT && TARGET_USE_BT
22990 : && ix86_binary_operator_ok (IOR, DImode, operands)
22991 : && IN_RANGE (exact_log2 (INTVAL (operands[2])), 31, 63)))
22992 : return 866; /* *iordi_1_bts */
22993 : break;
22994 :
22995 : case 3:
22996 : if ((
22997 : #line 13847 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22998 : (ix86_binary_operator_ok (IOR, TImode, operands, TARGET_APX_NDD)) &&
22999 : #line 1237 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23000 : (TARGET_64BIT)))
23001 : return 849; /* *iorti3_doubleword */
23002 : break;
23003 :
23004 : case 4:
23005 : if (
23006 : #line 13905 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23007 : (ix86_binary_operator_ok (IOR, HImode, operands, TARGET_APX_NDD)
23008 : && true))
23009 : return 852; /* *iorhi_1 */
23010 : break;
23011 :
23012 : case 5:
23013 : if (
23014 : #line 13905 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23015 : (ix86_binary_operator_ok (IOR, SImode, operands, TARGET_APX_NDD)
23016 : && true))
23017 : return 856; /* *iorsi_1 */
23018 : break;
23019 :
23020 : case 6:
23021 : if (
23022 : #line 4741 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
23023 : (ix86_binary_operator_ok (IOR, V4QImode, operands)))
23024 : return 2340; /* *iorv4qi3 */
23025 : break;
23026 :
23027 : case 7:
23028 : if (
23029 : #line 4741 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
23030 : (ix86_binary_operator_ok (IOR, V2QImode, operands)))
23031 : return 2343; /* *iorv2qi3 */
23032 : break;
23033 :
23034 : case 8:
23035 : if (
23036 : #line 4741 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
23037 : (ix86_binary_operator_ok (IOR, V2HImode, operands)))
23038 : return 2346; /* *iorv2hi3 */
23039 : break;
23040 :
23041 : case 9:
23042 : if (
23043 : #line 2117 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
23044 : (TARGET_AVX512F))
23045 : return 2635; /* kiorqi */
23046 : break;
23047 :
23048 : case 10:
23049 : if (
23050 : #line 2117 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
23051 : (TARGET_AVX512F))
23052 : return 2638; /* kiorhi */
23053 : break;
23054 :
23055 : case 11:
23056 : if ((
23057 : #line 2117 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
23058 : (TARGET_AVX512F) &&
23059 : #line 2098 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
23060 : (TARGET_AVX512BW)))
23061 : return 2641; /* kiorsi */
23062 : break;
23063 :
23064 : case 12:
23065 : if ((
23066 : #line 2117 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
23067 : (TARGET_AVX512F) &&
23068 : #line 2098 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
23069 : (TARGET_AVX512BW)))
23070 : return 2644; /* kiordi */
23071 : break;
23072 :
23073 : default:
23074 : break;
23075 : }
23076 : x5 = XVECEXP (x1, 0, 1);
23077 : if (GET_CODE (x5) != CLOBBER
23078 : || pattern573 (x1) != 0)
23079 : return -1;
23080 : if (GET_CODE (x4) == SUBREG
23081 : && known_eq (SUBREG_BYTE (x4), 0)
23082 : && GET_MODE (x4) == E_QImode)
23083 : {
23084 : res = recog_407 (x1, insn, pnum_clobbers);
23085 : if (res >= 0)
23086 : return res;
23087 : }
23088 : x6 = XEXP (x2, 0);
23089 : operands[0] = x6;
23090 : if (!nonimmediate_operand (operands[0], E_QImode))
23091 : return -1;
23092 : operands[1] = x4;
23093 : if (!nonimmediate_operand (operands[1], E_QImode))
23094 : return -1;
23095 : x7 = XEXP (x3, 1);
23096 : operands[2] = x7;
23097 : if (!general_operand (operands[2], E_QImode)
23098 : || !
23099 : #line 14095 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23100 : (ix86_binary_operator_ok (IOR, QImode, operands, TARGET_APX_NDD)
23101 : && true))
23102 : return -1;
23103 : return 896; /* *iorqi_1 */
23104 :
23105 : case ZERO_EXTEND:
23106 : if (GET_MODE (x4) != E_DImode
23107 : || pattern574 (x1) != 0)
23108 : return -1;
23109 : x8 = XEXP (x4, 0);
23110 : operands[1] = x8;
23111 : if (!nonimmediate_operand (operands[1], E_SImode))
23112 : return -1;
23113 : x7 = XEXP (x3, 1);
23114 : operands[2] = x7;
23115 : if (!x86_64_zext_immediate_operand (operands[2], E_DImode)
23116 : || !
23117 : #line 14082 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23118 : (TARGET_64BIT
23119 : && ix86_binary_operator_ok (IOR, SImode, operands, TARGET_APX_NDD)))
23120 : return -1;
23121 : return 893; /* *iorsi_1_zext_imm */
23122 :
23123 : case LSHIFTRT:
23124 : if (pattern344 (x1) != 0)
23125 : return -1;
23126 : switch (pattern1058 (x3,
23127 : ASHIFT))
23128 : {
23129 : case 0:
23130 : x7 = XEXP (x3, 1);
23131 : x9 = XEXP (x7, 0);
23132 : x10 = XEXP (x9, 0);
23133 : x11 = XEXP (x10, 0);
23134 : operands[1] = x11;
23135 : if (nonimmediate_operand (operands[0], E_DImode))
23136 : {
23137 : x12 = XEXP (x4, 1);
23138 : x13 = XEXP (x12, 0);
23139 : operands[2] = x13;
23140 : x8 = XEXP (x4, 0);
23141 : if (rtx_equal_p (x8, operands[0]))
23142 : {
23143 : x14 = XEXP (x9, 1);
23144 : x15 = XEXP (x14, 1);
23145 : x16 = XEXP (x15, 0);
23146 : if (rtx_equal_p (x16, operands[2])
23147 : &&
23148 : #line 17122 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23149 : (TARGET_64BIT && true))
23150 : return 1175; /* x86_64_shrd */
23151 : }
23152 : }
23153 : operands[2] = x11;
23154 : if (!register_operand (operands[0], E_DImode))
23155 : return -1;
23156 : x8 = XEXP (x4, 0);
23157 : operands[1] = x8;
23158 : if (!nonimmediate_operand (operands[1], E_DImode))
23159 : return -1;
23160 : x12 = XEXP (x4, 1);
23161 : x13 = XEXP (x12, 0);
23162 : operands[3] = x13;
23163 : x14 = XEXP (x9, 1);
23164 : x15 = XEXP (x14, 1);
23165 : x16 = XEXP (x15, 0);
23166 : if (!rtx_equal_p (x16, operands[3])
23167 : || !
23168 : #line 17143 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23169 : (TARGET_APX_NDD && true))
23170 : return -1;
23171 : return 1177; /* x86_64_shrd_ndd */
23172 :
23173 : case 1:
23174 : if (pattern1057 (x3,
23175 : E_SImode,
23176 : E_DImode) != 0)
23177 : return -1;
23178 : x7 = XEXP (x3, 1);
23179 : x9 = XEXP (x7, 0);
23180 : x10 = XEXP (x9, 0);
23181 : x11 = XEXP (x10, 0);
23182 : operands[1] = x11;
23183 : if (nonimmediate_operand (operands[0], E_SImode))
23184 : {
23185 : x12 = XEXP (x4, 1);
23186 : x13 = XEXP (x12, 0);
23187 : operands[2] = x13;
23188 : x8 = XEXP (x4, 0);
23189 : if (rtx_equal_p (x8, operands[0]))
23190 : {
23191 : x14 = XEXP (x9, 1);
23192 : x15 = XEXP (x14, 1);
23193 : x16 = XEXP (x15, 0);
23194 : if (rtx_equal_p (x16, operands[2]))
23195 : return 1187; /* x86_shrd */
23196 : }
23197 : }
23198 : operands[2] = x11;
23199 : if (!register_operand (operands[0], E_SImode))
23200 : return -1;
23201 : x8 = XEXP (x4, 0);
23202 : operands[1] = x8;
23203 : if (!nonimmediate_operand (operands[1], E_SImode))
23204 : return -1;
23205 : x12 = XEXP (x4, 1);
23206 : x13 = XEXP (x12, 0);
23207 : operands[3] = x13;
23208 : x14 = XEXP (x9, 1);
23209 : x15 = XEXP (x14, 1);
23210 : x16 = XEXP (x15, 0);
23211 : if (!rtx_equal_p (x16, operands[3])
23212 : || !
23213 : #line 17374 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23214 : (TARGET_APX_NDD && true))
23215 : return -1;
23216 : return 1189; /* x86_shrd_ndd */
23217 :
23218 : case 2:
23219 : x7 = XEXP (x3, 1);
23220 : switch (GET_CODE (x7))
23221 : {
23222 : case SUBREG:
23223 : switch (pattern1251 (x3,
23224 : ASHIFT))
23225 : {
23226 : case 0:
23227 : x12 = XEXP (x4, 1);
23228 : operands[2] = x12;
23229 : if (pattern1700 (x3) == 0
23230 : &&
23231 : #line 17158 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23232 : (TARGET_64BIT
23233 : && INTVAL (operands[3]) == 64 - INTVAL (operands[2])
23234 : && true))
23235 : return 1179; /* x86_64_shrd_1 */
23236 : operands[3] = x12;
23237 : if (pattern1701 (x3) != 0
23238 : || !
23239 : #line 17180 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23240 : (TARGET_APX_NDD
23241 : && INTVAL (operands[4]) == 64 - INTVAL (operands[3])
23242 : && true))
23243 : return -1;
23244 : return 1181; /* x86_64_shrd_ndd_1 */
23245 :
23246 : case 1:
23247 : x12 = XEXP (x4, 1);
23248 : operands[2] = x12;
23249 : if (pattern1702 (x3) == 0
23250 : &&
23251 : #line 17389 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23252 : (INTVAL (operands[3]) == 32 - INTVAL (operands[2])
23253 : && true))
23254 : return 1191; /* x86_shrd_1 */
23255 : operands[3] = x12;
23256 : if (pattern1703 (x3) != 0
23257 : || !
23258 : #line 17411 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23259 : (TARGET_APX_NDD
23260 : && (INTVAL (operands[4]) == 32 - INTVAL (operands[3]))
23261 : && true))
23262 : return -1;
23263 : return 1193; /* x86_shrd_ndd_1 */
23264 :
23265 : default:
23266 : return -1;
23267 : }
23268 :
23269 : case ASHIFT:
23270 : switch (pattern1253 (x3))
23271 : {
23272 : case 0:
23273 : if (!
23274 : #line 17252 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23275 : (TARGET_64BIT
23276 : && INTVAL (operands[3]) == 64 - INTVAL (operands[2])
23277 : && ix86_pre_reload_split ()))
23278 : return -1;
23279 : return 1183; /* *x86_64_shrd_shld_1_nozext */
23280 :
23281 : case 1:
23282 : if (!
23283 : #line 17483 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23284 : (INTVAL (operands[3]) == 32 - INTVAL (operands[2])
23285 : && ix86_pre_reload_split ()))
23286 : return -1;
23287 : return 1195; /* *x86_shrd_shld_1_nozext */
23288 :
23289 : case 2:
23290 : x9 = XEXP (x7, 0);
23291 : operands[1] = x9;
23292 : if (nonimmediate_operand (operands[0], E_DImode))
23293 : {
23294 : x12 = XEXP (x4, 1);
23295 : operands[2] = x12;
23296 : x8 = XEXP (x4, 0);
23297 : if (rtx_equal_p (x8, operands[0]))
23298 : {
23299 : x17 = XEXP (x7, 1);
23300 : x18 = XEXP (x17, 1);
23301 : if (rtx_equal_p (x18, operands[2])
23302 : &&
23303 : #line 17305 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23304 : (TARGET_64BIT && ix86_pre_reload_split ()))
23305 : return 1184; /* *x86_64_shrd_2 */
23306 : }
23307 : }
23308 : operands[2] = x9;
23309 : if (!register_operand (operands[0], E_DImode))
23310 : return -1;
23311 : x8 = XEXP (x4, 0);
23312 : operands[1] = x8;
23313 : if (!nonimmediate_operand (operands[1], E_DImode))
23314 : return -1;
23315 : x12 = XEXP (x4, 1);
23316 : operands[3] = x12;
23317 : x17 = XEXP (x7, 1);
23318 : x18 = XEXP (x17, 1);
23319 : if (!rtx_equal_p (x18, operands[2])
23320 : || !
23321 : #line 17326 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23322 : (TARGET_APX_NDD
23323 : && ix86_pre_reload_split ()))
23324 : return -1;
23325 : return 1185; /* *x86_64_shrd_ndd_2 */
23326 :
23327 : case 3:
23328 : x9 = XEXP (x7, 0);
23329 : operands[1] = x9;
23330 : if (nonimmediate_operand (operands[0], E_SImode))
23331 : {
23332 : x12 = XEXP (x4, 1);
23333 : operands[2] = x12;
23334 : x8 = XEXP (x4, 0);
23335 : if (rtx_equal_p (x8, operands[0]))
23336 : {
23337 : x17 = XEXP (x7, 1);
23338 : x18 = XEXP (x17, 1);
23339 : if (rtx_equal_p (x18, operands[2])
23340 : &&
23341 : #line 17535 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23342 : (TARGET_64BIT && ix86_pre_reload_split ()))
23343 : return 1196; /* *x86_shrd_2 */
23344 : }
23345 : }
23346 : operands[2] = x9;
23347 : if (!register_operand (operands[0], E_SImode))
23348 : return -1;
23349 : x8 = XEXP (x4, 0);
23350 : operands[1] = x8;
23351 : if (!nonimmediate_operand (operands[1], E_SImode))
23352 : return -1;
23353 : x12 = XEXP (x4, 1);
23354 : operands[3] = x12;
23355 : x17 = XEXP (x7, 1);
23356 : x18 = XEXP (x17, 1);
23357 : if (!rtx_equal_p (x18, operands[3])
23358 : || !
23359 : #line 17556 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23360 : (TARGET_APX_NDD
23361 : && ix86_pre_reload_split ()))
23362 : return -1;
23363 : return 1197; /* *x86_shrd_ndd_2 */
23364 :
23365 : default:
23366 : return -1;
23367 : }
23368 :
23369 : default:
23370 : return -1;
23371 : }
23372 :
23373 : default:
23374 : return -1;
23375 : }
23376 :
23377 : case NOT:
23378 : x8 = XEXP (x4, 0);
23379 : if (GET_CODE (x8) != PLUS)
23380 : return -1;
23381 : x19 = XEXP (x8, 1);
23382 : if (x19 != const_int_rtx[MAX_SAVED_CONST_INT + 1]
23383 : || pattern344 (x1) != 0)
23384 : return -1;
23385 : x20 = XEXP (x8, 0);
23386 : operands[1] = x20;
23387 : x7 = XEXP (x3, 1);
23388 : if (!rtx_equal_p (x7, operands[1]))
23389 : return -1;
23390 : switch (GET_MODE (operands[0]))
23391 : {
23392 : case E_SImode:
23393 : if (!register_operand (operands[0], E_SImode)
23394 : || GET_MODE (x3) != E_SImode
23395 : || GET_MODE (x4) != E_SImode
23396 : || GET_MODE (x8) != E_SImode
23397 : || !nonimmediate_operand (operands[1], E_SImode)
23398 : || !
23399 : #line 22556 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23400 : (TARGET_TBM))
23401 : return -1;
23402 : return 1642; /* *tbm_blci_si */
23403 :
23404 : case E_DImode:
23405 : if (!register_operand (operands[0], E_DImode)
23406 : || GET_MODE (x3) != E_DImode
23407 : || GET_MODE (x4) != E_DImode
23408 : || GET_MODE (x8) != E_DImode
23409 : || !nonimmediate_operand (operands[1], E_DImode)
23410 : || !(
23411 : #line 22556 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23412 : (TARGET_TBM) &&
23413 : #line 1168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23414 : (TARGET_64BIT)))
23415 : return -1;
23416 : return 1643; /* *tbm_blci_di */
23417 :
23418 : default:
23419 : return -1;
23420 : }
23421 :
23422 : case PLUS:
23423 : x12 = XEXP (x4, 1);
23424 : if (GET_CODE (x12) != CONST_INT
23425 : || pattern349 (x1) != 0)
23426 : return -1;
23427 : switch (XWINT (x12, 0))
23428 : {
23429 : case 1L:
23430 : switch (pattern1337 (x3))
23431 : {
23432 : case 0:
23433 : if (!
23434 : #line 22596 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23435 : (TARGET_TBM))
23436 : return -1;
23437 : return 1648; /* *tbm_blcs_si */
23438 :
23439 : case 1:
23440 : if (!(
23441 : #line 22596 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23442 : (TARGET_TBM) &&
23443 : #line 1168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23444 : (TARGET_64BIT)))
23445 : return -1;
23446 : return 1649; /* *tbm_blcs_di */
23447 :
23448 : case 2:
23449 : if (!
23450 : #line 22637 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23451 : (TARGET_TBM))
23452 : return -1;
23453 : return 1654; /* *tbm_t1mskc_si */
23454 :
23455 : case 3:
23456 : if (!(
23457 : #line 22637 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23458 : (TARGET_TBM) &&
23459 : #line 1168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23460 : (TARGET_64BIT)))
23461 : return -1;
23462 : return 1655; /* *tbm_t1mskc_di */
23463 :
23464 : default:
23465 : return -1;
23466 : }
23467 :
23468 : case -1L:
23469 : switch (pattern1337 (x3))
23470 : {
23471 : case 0:
23472 : if (!
23473 : #line 22609 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23474 : (TARGET_TBM))
23475 : return -1;
23476 : return 1650; /* *tbm_blsfill_si */
23477 :
23478 : case 1:
23479 : if (!(
23480 : #line 22609 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23481 : (TARGET_TBM) &&
23482 : #line 1168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23483 : (TARGET_64BIT)))
23484 : return -1;
23485 : return 1651; /* *tbm_blsfill_di */
23486 :
23487 : case 2:
23488 : if (!
23489 : #line 22623 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23490 : (TARGET_TBM))
23491 : return -1;
23492 : return 1652; /* *tbm_blsic_si */
23493 :
23494 : case 3:
23495 : if (!(
23496 : #line 22623 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23497 : (TARGET_TBM) &&
23498 : #line 1168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23499 : (TARGET_64BIT)))
23500 : return -1;
23501 : return 1653; /* *tbm_blsic_di */
23502 :
23503 : default:
23504 : return -1;
23505 : }
23506 :
23507 : default:
23508 : return -1;
23509 : }
23510 :
23511 : default:
23512 : return -1;
23513 : }
23514 : }
23515 :
23516 : int
23517 : recog_425 (rtx x1 ATTRIBUTE_UNUSED,
23518 : rtx_insn *insn ATTRIBUTE_UNUSED,
23519 : int *pnum_clobbers ATTRIBUTE_UNUSED)
23520 : {
23521 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
23522 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
23523 : rtx x10;
23524 : int res ATTRIBUTE_UNUSED;
23525 : x2 = XVECEXP (x1, 0, 0);
23526 : x3 = XEXP (x2, 1);
23527 : x4 = XEXP (x3, 0);
23528 : if (GET_CODE (x4) != TRUNCATE)
23529 : return -1;
23530 : x5 = XEXP (x3, 1);
23531 : if (GET_CODE (x5) != TRUNCATE)
23532 : return -1;
23533 : x6 = XVECEXP (x1, 0, 1);
23534 : if (GET_CODE (x6) != USE)
23535 : return -1;
23536 : x7 = XEXP (x2, 0);
23537 : operands[0] = x7;
23538 : x8 = XEXP (x4, 0);
23539 : operands[1] = x8;
23540 : x9 = XEXP (x5, 0);
23541 : operands[2] = x9;
23542 : x10 = XEXP (x6, 0);
23543 : operands[3] = x10;
23544 : if (!nonimmediate_operand (operands[3], E_V16QImode))
23545 : return -1;
23546 : switch (GET_MODE (operands[0]))
23547 : {
23548 : case E_V4SImode:
23549 : if (pattern1340 (x3,
23550 : E_V2DImode,
23551 : E_V2SImode,
23552 : E_V4SImode) != 0
23553 : || !
23554 : #line 27114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
23555 : (TARGET_XOP && !(MEM_P (operands[2]) && MEM_P (operands[3]))))
23556 : return -1;
23557 : return 9083; /* xop_pperm_pack_v2di_v4si */
23558 :
23559 : case E_V8HImode:
23560 : if (pattern1340 (x3,
23561 : E_V4SImode,
23562 : E_V4HImode,
23563 : E_V8HImode) != 0
23564 : || !
23565 : #line 27127 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
23566 : (TARGET_XOP && !(MEM_P (operands[2]) && MEM_P (operands[3]))))
23567 : return -1;
23568 : return 9084; /* xop_pperm_pack_v4si_v8hi */
23569 :
23570 : case E_V16QImode:
23571 : if (pattern1340 (x3,
23572 : E_V8HImode,
23573 : E_V8QImode,
23574 : E_V16QImode) != 0
23575 : || !
23576 : #line 27140 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
23577 : (TARGET_XOP && !(MEM_P (operands[2]) && MEM_P (operands[3]))))
23578 : return -1;
23579 : return 9085; /* xop_pperm_pack_v8hi_v16qi */
23580 :
23581 : default:
23582 : return -1;
23583 : }
23584 : }
23585 :
23586 : int
23587 : recog_428 (rtx x1 ATTRIBUTE_UNUSED,
23588 : rtx_insn *insn ATTRIBUTE_UNUSED,
23589 : int *pnum_clobbers ATTRIBUTE_UNUSED)
23590 : {
23591 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
23592 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
23593 : int res ATTRIBUTE_UNUSED;
23594 : x2 = XVECEXP (x1, 0, 0);
23595 : x3 = XEXP (x2, 0);
23596 : operands[0] = x3;
23597 : x4 = XEXP (x2, 1);
23598 : operands[1] = x4;
23599 : x5 = XVECEXP (x1, 0, 1);
23600 : x6 = XVECEXP (x5, 0, 0);
23601 : operands[2] = x6;
23602 : switch (GET_MODE (operands[0]))
23603 : {
23604 : case E_V64QImode:
23605 : if (register_operand (operands[0], E_V64QImode)
23606 : && int_float_vector_all_ones_operand (operands[1], E_V64QImode)
23607 : && register_operand (operands[2], E_V64QImode)
23608 : && (
23609 : #line 1555 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
23610 : (TARGET_AVX512VL || 64 == 64) &&
23611 : #line 287 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
23612 : (TARGET_AVX512F)))
23613 : return 2478; /* *vmovv64qi_constm1_pternlog_false_dep */
23614 : break;
23615 :
23616 : case E_V32QImode:
23617 : if (register_operand (operands[0], E_V32QImode)
23618 : && int_float_vector_all_ones_operand (operands[1], E_V32QImode)
23619 : && register_operand (operands[2], E_V32QImode)
23620 : && (
23621 : #line 1555 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
23622 : (TARGET_AVX512VL || 32 == 64) &&
23623 : #line 287 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
23624 : (TARGET_AVX)))
23625 : return 2479; /* *vmovv32qi_constm1_pternlog_false_dep */
23626 : break;
23627 :
23628 : case E_V16QImode:
23629 : if (register_operand (operands[0], E_V16QImode)
23630 : && int_float_vector_all_ones_operand (operands[1], E_V16QImode)
23631 : && register_operand (operands[2], E_V16QImode)
23632 : &&
23633 : #line 1555 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
23634 : (TARGET_AVX512VL || 16 == 64))
23635 : return 2480; /* *vmovv16qi_constm1_pternlog_false_dep */
23636 : break;
23637 :
23638 : case E_V32HImode:
23639 : if (register_operand (operands[0], E_V32HImode)
23640 : && int_float_vector_all_ones_operand (operands[1], E_V32HImode)
23641 : && register_operand (operands[2], E_V32HImode)
23642 : && (
23643 : #line 1555 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
23644 : (TARGET_AVX512VL || 64 == 64) &&
23645 : #line 288 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
23646 : (TARGET_AVX512F)))
23647 : return 2481; /* *vmovv32hi_constm1_pternlog_false_dep */
23648 : break;
23649 :
23650 : case E_V16HImode:
23651 : if (register_operand (operands[0], E_V16HImode)
23652 : && int_float_vector_all_ones_operand (operands[1], E_V16HImode)
23653 : && register_operand (operands[2], E_V16HImode)
23654 : && (
23655 : #line 1555 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
23656 : (TARGET_AVX512VL || 32 == 64) &&
23657 : #line 288 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
23658 : (TARGET_AVX)))
23659 : return 2482; /* *vmovv16hi_constm1_pternlog_false_dep */
23660 : break;
23661 :
23662 : case E_V8HImode:
23663 : if (register_operand (operands[0], E_V8HImode)
23664 : && int_float_vector_all_ones_operand (operands[1], E_V8HImode)
23665 : && register_operand (operands[2], E_V8HImode)
23666 : &&
23667 : #line 1555 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
23668 : (TARGET_AVX512VL || 16 == 64))
23669 : return 2483; /* *vmovv8hi_constm1_pternlog_false_dep */
23670 : break;
23671 :
23672 : case E_V16SImode:
23673 : if (register_operand (operands[0], E_V16SImode)
23674 : && int_float_vector_all_ones_operand (operands[1], E_V16SImode)
23675 : && register_operand (operands[2], E_V16SImode)
23676 : && (
23677 : #line 1555 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
23678 : (TARGET_AVX512VL || 64 == 64) &&
23679 : #line 289 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
23680 : (TARGET_AVX512F)))
23681 : return 2484; /* *vmovv16si_constm1_pternlog_false_dep */
23682 : break;
23683 :
23684 : case E_V8SImode:
23685 : if (register_operand (operands[0], E_V8SImode)
23686 : && int_float_vector_all_ones_operand (operands[1], E_V8SImode)
23687 : && register_operand (operands[2], E_V8SImode)
23688 : && (
23689 : #line 1555 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
23690 : (TARGET_AVX512VL || 32 == 64) &&
23691 : #line 289 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
23692 : (TARGET_AVX)))
23693 : return 2485; /* *vmovv8si_constm1_pternlog_false_dep */
23694 : break;
23695 :
23696 : case E_V4SImode:
23697 : if (register_operand (operands[0], E_V4SImode)
23698 : && int_float_vector_all_ones_operand (operands[1], E_V4SImode)
23699 : && register_operand (operands[2], E_V4SImode)
23700 : &&
23701 : #line 1555 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
23702 : (TARGET_AVX512VL || 16 == 64))
23703 : return 2486; /* *vmovv4si_constm1_pternlog_false_dep */
23704 : break;
23705 :
23706 : case E_V8DImode:
23707 : if (register_operand (operands[0], E_V8DImode)
23708 : && int_float_vector_all_ones_operand (operands[1], E_V8DImode)
23709 : && register_operand (operands[2], E_V8DImode)
23710 : && (
23711 : #line 1555 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
23712 : (TARGET_AVX512VL || 64 == 64) &&
23713 : #line 290 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
23714 : (TARGET_AVX512F)))
23715 : return 2487; /* *vmovv8di_constm1_pternlog_false_dep */
23716 : break;
23717 :
23718 : case E_V4DImode:
23719 : if (register_operand (operands[0], E_V4DImode)
23720 : && int_float_vector_all_ones_operand (operands[1], E_V4DImode)
23721 : && register_operand (operands[2], E_V4DImode)
23722 : && (
23723 : #line 1555 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
23724 : (TARGET_AVX512VL || 32 == 64) &&
23725 : #line 290 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
23726 : (TARGET_AVX)))
23727 : return 2488; /* *vmovv4di_constm1_pternlog_false_dep */
23728 : break;
23729 :
23730 : case E_V2DImode:
23731 : if (register_operand (operands[0], E_V2DImode)
23732 : && int_float_vector_all_ones_operand (operands[1], E_V2DImode)
23733 : && register_operand (operands[2], E_V2DImode)
23734 : &&
23735 : #line 1555 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
23736 : (TARGET_AVX512VL || 16 == 64))
23737 : return 2489; /* *vmovv2di_constm1_pternlog_false_dep */
23738 : break;
23739 :
23740 : case E_V4TImode:
23741 : if (register_operand (operands[0], E_V4TImode)
23742 : && int_float_vector_all_ones_operand (operands[1], E_V4TImode)
23743 : && register_operand (operands[2], E_V4TImode)
23744 : && (
23745 : #line 1555 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
23746 : (TARGET_AVX512VL || 64 == 64) &&
23747 : #line 291 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
23748 : (TARGET_AVX512F)))
23749 : return 2490; /* *vmovv4ti_constm1_pternlog_false_dep */
23750 : break;
23751 :
23752 : case E_V2TImode:
23753 : if (register_operand (operands[0], E_V2TImode)
23754 : && int_float_vector_all_ones_operand (operands[1], E_V2TImode)
23755 : && register_operand (operands[2], E_V2TImode)
23756 : && (
23757 : #line 1555 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
23758 : (TARGET_AVX512VL || 32 == 64) &&
23759 : #line 291 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
23760 : (TARGET_AVX)))
23761 : return 2491; /* *vmovv2ti_constm1_pternlog_false_dep */
23762 : break;
23763 :
23764 : case E_V1TImode:
23765 : if (register_operand (operands[0], E_V1TImode)
23766 : && int_float_vector_all_ones_operand (operands[1], E_V1TImode)
23767 : && register_operand (operands[2], E_V1TImode)
23768 : &&
23769 : #line 1555 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
23770 : (TARGET_AVX512VL || 16 == 64))
23771 : return 2492; /* *vmovv1ti_constm1_pternlog_false_dep */
23772 : break;
23773 :
23774 : case E_V32HFmode:
23775 : if (register_operand (operands[0], E_V32HFmode)
23776 : && int_float_vector_all_ones_operand (operands[1], E_V32HFmode)
23777 : && register_operand (operands[2], E_V32HFmode)
23778 : && (
23779 : #line 1555 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
23780 : (TARGET_AVX512VL || 64 == 64) &&
23781 : #line 292 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
23782 : (TARGET_AVX512F)))
23783 : return 2493; /* *vmovv32hf_constm1_pternlog_false_dep */
23784 : break;
23785 :
23786 : case E_V16HFmode:
23787 : if (register_operand (operands[0], E_V16HFmode)
23788 : && int_float_vector_all_ones_operand (operands[1], E_V16HFmode)
23789 : && register_operand (operands[2], E_V16HFmode)
23790 : && (
23791 : #line 1555 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
23792 : (TARGET_AVX512VL || 32 == 64) &&
23793 : #line 292 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
23794 : (TARGET_AVX)))
23795 : return 2494; /* *vmovv16hf_constm1_pternlog_false_dep */
23796 : break;
23797 :
23798 : case E_V8HFmode:
23799 : if (register_operand (operands[0], E_V8HFmode)
23800 : && int_float_vector_all_ones_operand (operands[1], E_V8HFmode)
23801 : && register_operand (operands[2], E_V8HFmode)
23802 : &&
23803 : #line 1555 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
23804 : (TARGET_AVX512VL || 16 == 64))
23805 : return 2495; /* *vmovv8hf_constm1_pternlog_false_dep */
23806 : break;
23807 :
23808 : case E_V32BFmode:
23809 : if (register_operand (operands[0], E_V32BFmode)
23810 : && int_float_vector_all_ones_operand (operands[1], E_V32BFmode)
23811 : && register_operand (operands[2], E_V32BFmode)
23812 : && (
23813 : #line 1555 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
23814 : (TARGET_AVX512VL || 64 == 64) &&
23815 : #line 293 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
23816 : (TARGET_AVX512F)))
23817 : return 2496; /* *vmovv32bf_constm1_pternlog_false_dep */
23818 : break;
23819 :
23820 : case E_V16BFmode:
23821 : if (register_operand (operands[0], E_V16BFmode)
23822 : && int_float_vector_all_ones_operand (operands[1], E_V16BFmode)
23823 : && register_operand (operands[2], E_V16BFmode)
23824 : && (
23825 : #line 1555 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
23826 : (TARGET_AVX512VL || 32 == 64) &&
23827 : #line 293 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
23828 : (TARGET_AVX)))
23829 : return 2497; /* *vmovv16bf_constm1_pternlog_false_dep */
23830 : break;
23831 :
23832 : case E_V8BFmode:
23833 : if (register_operand (operands[0], E_V8BFmode)
23834 : && int_float_vector_all_ones_operand (operands[1], E_V8BFmode)
23835 : && register_operand (operands[2], E_V8BFmode)
23836 : &&
23837 : #line 1555 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
23838 : (TARGET_AVX512VL || 16 == 64))
23839 : return 2498; /* *vmovv8bf_constm1_pternlog_false_dep */
23840 : break;
23841 :
23842 : case E_V16SFmode:
23843 : if (register_operand (operands[0], E_V16SFmode)
23844 : && int_float_vector_all_ones_operand (operands[1], E_V16SFmode)
23845 : && register_operand (operands[2], E_V16SFmode)
23846 : && (
23847 : #line 1555 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
23848 : (TARGET_AVX512VL || 64 == 64) &&
23849 : #line 294 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
23850 : (TARGET_AVX512F)))
23851 : return 2499; /* *vmovv16sf_constm1_pternlog_false_dep */
23852 : break;
23853 :
23854 : case E_V8SFmode:
23855 : if (register_operand (operands[0], E_V8SFmode)
23856 : && int_float_vector_all_ones_operand (operands[1], E_V8SFmode)
23857 : && register_operand (operands[2], E_V8SFmode)
23858 : && (
23859 : #line 1555 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
23860 : (TARGET_AVX512VL || 32 == 64) &&
23861 : #line 294 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
23862 : (TARGET_AVX)))
23863 : return 2500; /* *vmovv8sf_constm1_pternlog_false_dep */
23864 : break;
23865 :
23866 : case E_V4SFmode:
23867 : if (register_operand (operands[0], E_V4SFmode)
23868 : && int_float_vector_all_ones_operand (operands[1], E_V4SFmode)
23869 : && register_operand (operands[2], E_V4SFmode)
23870 : &&
23871 : #line 1555 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
23872 : (TARGET_AVX512VL || 16 == 64))
23873 : return 2501; /* *vmovv4sf_constm1_pternlog_false_dep */
23874 : break;
23875 :
23876 : case E_V8DFmode:
23877 : if (register_operand (operands[0], E_V8DFmode)
23878 : && int_float_vector_all_ones_operand (operands[1], E_V8DFmode)
23879 : && register_operand (operands[2], E_V8DFmode)
23880 : && (
23881 : #line 1555 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
23882 : (TARGET_AVX512VL || 64 == 64) &&
23883 : #line 295 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
23884 : (TARGET_AVX512F)))
23885 : return 2502; /* *vmovv8df_constm1_pternlog_false_dep */
23886 : break;
23887 :
23888 : case E_V4DFmode:
23889 : if (register_operand (operands[0], E_V4DFmode)
23890 : && int_float_vector_all_ones_operand (operands[1], E_V4DFmode)
23891 : && register_operand (operands[2], E_V4DFmode)
23892 : && (
23893 : #line 1555 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
23894 : (TARGET_AVX512VL || 32 == 64) &&
23895 : #line 295 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
23896 : (TARGET_AVX)))
23897 : return 2503; /* *vmovv4df_constm1_pternlog_false_dep */
23898 : break;
23899 :
23900 : case E_V2DFmode:
23901 : if (register_operand (operands[0], E_V2DFmode)
23902 : && int_float_vector_all_ones_operand (operands[1], E_V2DFmode)
23903 : && register_operand (operands[2], E_V2DFmode)
23904 : &&
23905 : #line 1555 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
23906 : (TARGET_AVX512VL || 16 == 64))
23907 : return 2504; /* *vmovv2df_constm1_pternlog_false_dep */
23908 : break;
23909 :
23910 : default:
23911 : break;
23912 : }
23913 : switch (GET_CODE (x4))
23914 : {
23915 : case VEC_MERGE:
23916 : x7 = XEXP (x4, 0);
23917 : operands[2] = x7;
23918 : x8 = XEXP (x4, 1);
23919 : operands[3] = x8;
23920 : x9 = XEXP (x4, 2);
23921 : operands[1] = x9;
23922 : operands[4] = x6;
23923 : switch (GET_MODE (operands[0]))
23924 : {
23925 : case E_V16SImode:
23926 : if (pattern1341 (x4,
23927 : E_V16SImode,
23928 : E_HImode) != 0
23929 : || !
23930 : #line 10690 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
23931 : (TARGET_AVX512F && !TARGET_AVX512DQ))
23932 : return -1;
23933 : return 5244; /* *avx512f_cvtmask2dv16si_pternlog_false_dep */
23934 :
23935 : case E_V8SImode:
23936 : if (pattern1341 (x4,
23937 : E_V8SImode,
23938 : E_QImode) != 0
23939 : || !(
23940 : #line 10690 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
23941 : (TARGET_AVX512F && !TARGET_AVX512DQ) &&
23942 : #line 496 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
23943 : (TARGET_AVX512VL)))
23944 : return -1;
23945 : return 5245; /* *avx512vl_cvtmask2dv8si_pternlog_false_dep */
23946 :
23947 : case E_V4SImode:
23948 : if (pattern1341 (x4,
23949 : E_V4SImode,
23950 : E_QImode) != 0
23951 : || !(
23952 : #line 10690 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
23953 : (TARGET_AVX512F && !TARGET_AVX512DQ) &&
23954 : #line 496 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
23955 : (TARGET_AVX512VL)))
23956 : return -1;
23957 : return 5246; /* *avx512vl_cvtmask2dv4si_pternlog_false_dep */
23958 :
23959 : case E_V8DImode:
23960 : if (pattern1341 (x4,
23961 : E_V8DImode,
23962 : E_QImode) != 0
23963 : || !
23964 : #line 10690 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
23965 : (TARGET_AVX512F && !TARGET_AVX512DQ))
23966 : return -1;
23967 : return 5247; /* *avx512f_cvtmask2qv8di_pternlog_false_dep */
23968 :
23969 : case E_V4DImode:
23970 : if (pattern1341 (x4,
23971 : E_V4DImode,
23972 : E_QImode) != 0
23973 : || !(
23974 : #line 10690 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
23975 : (TARGET_AVX512F && !TARGET_AVX512DQ) &&
23976 : #line 497 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
23977 : (TARGET_AVX512VL)))
23978 : return -1;
23979 : return 5248; /* *avx512vl_cvtmask2qv4di_pternlog_false_dep */
23980 :
23981 : case E_V2DImode:
23982 : if (pattern1341 (x4,
23983 : E_V2DImode,
23984 : E_QImode) != 0
23985 : || !(
23986 : #line 10690 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
23987 : (TARGET_AVX512F && !TARGET_AVX512DQ) &&
23988 : #line 497 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
23989 : (TARGET_AVX512VL)))
23990 : return -1;
23991 : return 5249; /* *avx512vl_cvtmask2qv2di_pternlog_false_dep */
23992 :
23993 : default:
23994 : return -1;
23995 : }
23996 :
23997 : case XOR:
23998 : x7 = XEXP (x4, 0);
23999 : operands[1] = x7;
24000 : x8 = XEXP (x4, 1);
24001 : operands[2] = x8;
24002 : operands[3] = x6;
24003 : switch (GET_MODE (operands[0]))
24004 : {
24005 : case E_V16SImode:
24006 : if (pattern1259 (x4,
24007 : E_V16SImode) != 0
24008 : || !
24009 : #line 18765 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
24010 : (TARGET_AVX512F))
24011 : return -1;
24012 : return 8018; /* *one_cmplv16si2_pternlog_false_dep */
24013 :
24014 : case E_V8DImode:
24015 : if (pattern1259 (x4,
24016 : E_V8DImode) != 0
24017 : || !
24018 : #line 18765 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
24019 : (TARGET_AVX512F))
24020 : return -1;
24021 : return 8019; /* *one_cmplv8di2_pternlog_false_dep */
24022 :
24023 : case E_V64QImode:
24024 : if (pattern1259 (x4,
24025 : E_V64QImode) != 0
24026 : || !(
24027 : #line 18765 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
24028 : (TARGET_AVX512F) &&
24029 : #line 557 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
24030 : (TARGET_AVX512BW)))
24031 : return -1;
24032 : return 8020; /* *one_cmplv64qi2_pternlog_false_dep */
24033 :
24034 : case E_V32QImode:
24035 : if (pattern1259 (x4,
24036 : E_V32QImode) != 0
24037 : || !(
24038 : #line 18765 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
24039 : (TARGET_AVX512F) &&
24040 : #line 557 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
24041 : (TARGET_AVX)))
24042 : return -1;
24043 : return 8021; /* *one_cmplv32qi2_pternlog_false_dep */
24044 :
24045 : case E_V16QImode:
24046 : if (pattern1259 (x4,
24047 : E_V16QImode) != 0
24048 : || !
24049 : #line 18765 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
24050 : (TARGET_AVX512F))
24051 : return -1;
24052 : return 8022; /* *one_cmplv16qi2_pternlog_false_dep */
24053 :
24054 : case E_V32HImode:
24055 : if (pattern1259 (x4,
24056 : E_V32HImode) != 0
24057 : || !(
24058 : #line 18765 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
24059 : (TARGET_AVX512F) &&
24060 : #line 558 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
24061 : (TARGET_AVX512BW)))
24062 : return -1;
24063 : return 8023; /* *one_cmplv32hi2_pternlog_false_dep */
24064 :
24065 : case E_V16HImode:
24066 : if (pattern1259 (x4,
24067 : E_V16HImode) != 0
24068 : || !(
24069 : #line 18765 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
24070 : (TARGET_AVX512F) &&
24071 : #line 558 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
24072 : (TARGET_AVX)))
24073 : return -1;
24074 : return 8024; /* *one_cmplv16hi2_pternlog_false_dep */
24075 :
24076 : case E_V8HImode:
24077 : if (pattern1259 (x4,
24078 : E_V8HImode) != 0
24079 : || !
24080 : #line 18765 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
24081 : (TARGET_AVX512F))
24082 : return -1;
24083 : return 8025; /* *one_cmplv8hi2_pternlog_false_dep */
24084 :
24085 : case E_V8SImode:
24086 : if (pattern1259 (x4,
24087 : E_V8SImode) != 0
24088 : || !(
24089 : #line 18765 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
24090 : (TARGET_AVX512F) &&
24091 : #line 559 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
24092 : (TARGET_AVX)))
24093 : return -1;
24094 : return 8026; /* *one_cmplv8si2_pternlog_false_dep */
24095 :
24096 : case E_V4SImode:
24097 : if (pattern1259 (x4,
24098 : E_V4SImode) != 0
24099 : || !
24100 : #line 18765 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
24101 : (TARGET_AVX512F))
24102 : return -1;
24103 : return 8027; /* *one_cmplv4si2_pternlog_false_dep */
24104 :
24105 : case E_V4DImode:
24106 : if (pattern1259 (x4,
24107 : E_V4DImode) != 0
24108 : || !(
24109 : #line 18765 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
24110 : (TARGET_AVX512F) &&
24111 : #line 560 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
24112 : (TARGET_AVX)))
24113 : return -1;
24114 : return 8028; /* *one_cmplv4di2_pternlog_false_dep */
24115 :
24116 : case E_V2DImode:
24117 : if (pattern1259 (x4,
24118 : E_V2DImode) != 0
24119 : || !
24120 : #line 18765 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
24121 : (TARGET_AVX512F))
24122 : return -1;
24123 : return 8029; /* *one_cmplv2di2_pternlog_false_dep */
24124 :
24125 : default:
24126 : return -1;
24127 : }
24128 :
24129 : default:
24130 : return -1;
24131 : }
24132 : }
24133 :
24134 : rtx_insn *
24135 : split_3 (rtx x1 ATTRIBUTE_UNUSED, rtx_insn *insn ATTRIBUTE_UNUSED)
24136 : {
24137 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
24138 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
24139 : rtx x10, x11;
24140 : rtx_insn *res ATTRIBUTE_UNUSED;
24141 : x2 = XEXP (x1, 1);
24142 : x3 = XEXP (x2, 0);
24143 : x4 = XEXP (x3, 0);
24144 : if (GET_CODE (x4) != ZERO_EXTRACT)
24145 : return NULL;
24146 : x5 = XEXP (x4, 1);
24147 : if (x5 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
24148 : return NULL;
24149 : x6 = XEXP (x3, 1);
24150 : if (x6 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
24151 : return NULL;
24152 : x7 = XEXP (x1, 0);
24153 : operands[0] = x7;
24154 : x8 = XEXP (x4, 0);
24155 : operands[1] = x8;
24156 : x9 = XEXP (x4, 2);
24157 : operands[2] = x9;
24158 : if (!register_operand (operands[2], E_QImode))
24159 : return NULL;
24160 : x10 = XEXP (x2, 1);
24161 : operands[3] = x10;
24162 : x11 = XEXP (x2, 2);
24163 : operands[4] = x11;
24164 : switch (GET_MODE (operands[0]))
24165 : {
24166 : case E_HImode:
24167 : switch (pattern1540 (x2,
24168 : E_HImode))
24169 : {
24170 : case 0:
24171 : if (!
24172 : #line 19660 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24173 : (TARGET_USE_BT && TARGET_CMOVE
24174 : && !(MEM_P (operands[3]) && MEM_P (operands[4]))
24175 : && ix86_pre_reload_split ()))
24176 : return NULL;
24177 : return gen_split_836 (insn, operands);
24178 :
24179 : case 1:
24180 : if (!(
24181 : #line 19660 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24182 : (TARGET_USE_BT && TARGET_CMOVE
24183 : && !(MEM_P (operands[3]) && MEM_P (operands[4]))
24184 : && ix86_pre_reload_split ()) &&
24185 : #line 1168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24186 : (TARGET_64BIT)))
24187 : return NULL;
24188 : return gen_split_837 (insn, operands);
24189 :
24190 : default:
24191 : return NULL;
24192 : }
24193 :
24194 : case E_SImode:
24195 : switch (pattern1540 (x2,
24196 : E_SImode))
24197 : {
24198 : case 0:
24199 : if (!
24200 : #line 19660 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24201 : (TARGET_USE_BT && TARGET_CMOVE
24202 : && !(MEM_P (operands[3]) && MEM_P (operands[4]))
24203 : && ix86_pre_reload_split ()))
24204 : return NULL;
24205 : return gen_split_838 (insn, operands);
24206 :
24207 : case 1:
24208 : if (!(
24209 : #line 19660 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24210 : (TARGET_USE_BT && TARGET_CMOVE
24211 : && !(MEM_P (operands[3]) && MEM_P (operands[4]))
24212 : && ix86_pre_reload_split ()) &&
24213 : #line 1168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24214 : (TARGET_64BIT)))
24215 : return NULL;
24216 : return gen_split_839 (insn, operands);
24217 :
24218 : default:
24219 : return NULL;
24220 : }
24221 :
24222 : case E_DImode:
24223 : switch (pattern1540 (x2,
24224 : E_DImode))
24225 : {
24226 : case 0:
24227 : if (!(
24228 : #line 19660 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24229 : (TARGET_USE_BT && TARGET_CMOVE
24230 : && !(MEM_P (operands[3]) && MEM_P (operands[4]))
24231 : && ix86_pre_reload_split ()) &&
24232 : #line 1165 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24233 : (TARGET_64BIT)))
24234 : return NULL;
24235 : return gen_split_840 (insn, operands);
24236 :
24237 : case 1:
24238 : if (!(
24239 : #line 19660 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24240 : (TARGET_USE_BT && TARGET_CMOVE
24241 : && !(MEM_P (operands[3]) && MEM_P (operands[4]))
24242 : && ix86_pre_reload_split ()) &&
24243 : #line 1165 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24244 : (TARGET_64BIT)))
24245 : return NULL;
24246 : return gen_split_841 (insn, operands);
24247 :
24248 : default:
24249 : return NULL;
24250 : }
24251 :
24252 : default:
24253 : return NULL;
24254 : }
24255 : }
24256 :
24257 : rtx_insn *
24258 : split_7 (rtx x1 ATTRIBUTE_UNUSED, rtx_insn *insn ATTRIBUTE_UNUSED)
24259 : {
24260 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
24261 : rtx x2, x3, x4, x5, x6, x7;
24262 : rtx_insn *res ATTRIBUTE_UNUSED;
24263 : x2 = XEXP (x1, 0);
24264 : operands[0] = x2;
24265 : x3 = XEXP (x1, 1);
24266 : x4 = XEXP (x3, 0);
24267 : switch (GET_CODE (x4))
24268 : {
24269 : case AND:
24270 : switch (pattern76 (x3))
24271 : {
24272 : case 0:
24273 : if (!(
24274 : #line 3715 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24275 : (TARGET_64BIT
24276 : && CONST_WIDE_INT_P (operands[3])
24277 : && CONST_WIDE_INT_NUNITS (operands[3]) == 2
24278 : && CONST_WIDE_INT_ELT (operands[3], 0) == -1
24279 : && CONST_WIDE_INT_ELT (operands[3], 1) == 0) &&
24280 : #line 3721 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24281 : ( reload_completed)))
24282 : return NULL;
24283 : return gen_split_29 (insn, operands);
24284 :
24285 : case 1:
24286 : if (!(
24287 : #line 3737 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24288 : (TARGET_64BIT
24289 : && CONST_WIDE_INT_P (operands[3])
24290 : && CONST_WIDE_INT_NUNITS (operands[3]) == 2
24291 : && CONST_WIDE_INT_ELT (operands[3], 0) == 0
24292 : && CONST_WIDE_INT_ELT (operands[3], 1) == -1) &&
24293 : #line 3743 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24294 : ( reload_completed)))
24295 : return NULL;
24296 : return gen_split_32 (insn, operands);
24297 :
24298 : case 2:
24299 : if (!(
24300 : #line 3759 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24301 : (!TARGET_64BIT
24302 : && CONST_INT_P (operands[3])
24303 : && UINTVAL (operands[3]) == 0xffffffff00000000ll) &&
24304 : #line 3763 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24305 : ( reload_completed)))
24306 : return NULL;
24307 : return gen_split_35 (insn, operands);
24308 :
24309 : default:
24310 : return NULL;
24311 : }
24312 :
24313 : case ASHIFT:
24314 : x5 = XEXP (x4, 1);
24315 : operands[2] = x5;
24316 : x6 = XEXP (x4, 0);
24317 : switch (GET_CODE (x6))
24318 : {
24319 : case REG:
24320 : case SUBREG:
24321 : case MEM:
24322 : x7 = XEXP (x3, 1);
24323 : switch (GET_CODE (x7))
24324 : {
24325 : case CONST_INT:
24326 : case CONST_WIDE_INT:
24327 : operands[3] = x7;
24328 : operands[1] = x6;
24329 : switch (GET_MODE (operands[0]))
24330 : {
24331 : case E_QImode:
24332 : if (pattern614 (x3,
24333 : E_QImode) != 0
24334 : || !(
24335 : #line 8048 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24336 : ((!TARGET_PARTIAL_REG_STALL || optimize_function_for_size_p (cfun))
24337 : && ((unsigned HOST_WIDE_INT) INTVAL (operands[3])
24338 : < (HOST_WIDE_INT_1U << INTVAL (operands[2])))) &&
24339 : #line 8052 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24340 : ( reload_completed)))
24341 : return NULL;
24342 : return gen_split_166 (insn, operands);
24343 :
24344 : case E_HImode:
24345 : if (pattern614 (x3,
24346 : E_HImode) != 0
24347 : || !(
24348 : #line 8048 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24349 : ((!TARGET_PARTIAL_REG_STALL || optimize_function_for_size_p (cfun))
24350 : && ((unsigned HOST_WIDE_INT) INTVAL (operands[3])
24351 : < (HOST_WIDE_INT_1U << INTVAL (operands[2])))) &&
24352 : #line 8052 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24353 : ( reload_completed)))
24354 : return NULL;
24355 : return gen_split_168 (insn, operands);
24356 :
24357 : case E_SImode:
24358 : if (pattern614 (x3,
24359 : E_SImode) != 0
24360 : || !(
24361 : #line 8072 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24362 : ((unsigned HOST_WIDE_INT) INTVAL (operands[3])
24363 : < (HOST_WIDE_INT_1U << INTVAL (operands[2]))) &&
24364 : #line 8075 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24365 : ( reload_completed)))
24366 : return NULL;
24367 : return gen_split_170 (insn, operands);
24368 :
24369 : case E_DImode:
24370 : if (GET_MODE (x3) != E_DImode
24371 : || GET_MODE (x4) != E_DImode)
24372 : return NULL;
24373 : if (register_operand (operands[0], E_DImode)
24374 : && register_no_SP_operand (operands[1], E_DImode)
24375 : && const_0_to_3_operand (operands[2], E_VOIDmode)
24376 : && const_int_operand (operands[3], E_VOIDmode)
24377 : && ((
24378 : #line 8072 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24379 : ((unsigned HOST_WIDE_INT) INTVAL (operands[3])
24380 : < (HOST_WIDE_INT_1U << INTVAL (operands[2]))) &&
24381 : #line 1168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24382 : (TARGET_64BIT)) &&
24383 : #line 8075 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24384 : ( reload_completed)))
24385 : return gen_split_172 (insn, operands);
24386 : if (!nonimmediate_operand (operands[0], E_DImode)
24387 : || !register_operand (operands[1], E_DImode)
24388 : || !const_int_operand (operands[2], E_QImode)
24389 : || !const_scalar_int_operand (operands[3], E_DImode)
24390 : || !((
24391 : #line 14473 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24392 : (INTVAL (operands[2]) == 8 * BITS_PER_UNIT / 2
24393 : && (DImode == DImode
24394 : ? CONST_INT_P (operands[3])
24395 : && (UINTVAL (operands[3]) & ~GET_MODE_MASK (SImode)) == 0
24396 : : CONST_INT_P (operands[3])
24397 : ? INTVAL (operands[3]) >= 0
24398 : : CONST_WIDE_INT_NUNITS (operands[3]) == 2
24399 : && CONST_WIDE_INT_ELT (operands[3], 1) == 0)
24400 : && !(CONST_INT_P (operands[3])
24401 : ? ix86_endbr_immediate_operand (operands[3], VOIDmode)
24402 : : ix86_endbr_immediate_operand (GEN_INT (CONST_WIDE_INT_ELT (operands[3],
24403 : 0)),
24404 : VOIDmode))) &&
24405 : #line 1196 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24406 : (!TARGET_64BIT)) &&
24407 : #line 14487 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24408 : ( reload_completed)))
24409 : return NULL;
24410 : return gen_split_473 (insn, operands);
24411 :
24412 : case E_TImode:
24413 : if (pattern615 (x3,
24414 : E_TImode) != 0
24415 : || !((
24416 : #line 14473 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24417 : (INTVAL (operands[2]) == 16 * BITS_PER_UNIT / 2
24418 : && (TImode == DImode
24419 : ? CONST_INT_P (operands[3])
24420 : && (UINTVAL (operands[3]) & ~GET_MODE_MASK (SImode)) == 0
24421 : : CONST_INT_P (operands[3])
24422 : ? INTVAL (operands[3]) >= 0
24423 : : CONST_WIDE_INT_NUNITS (operands[3]) == 2
24424 : && CONST_WIDE_INT_ELT (operands[3], 1) == 0)
24425 : && !(CONST_INT_P (operands[3])
24426 : ? ix86_endbr_immediate_operand (operands[3], VOIDmode)
24427 : : ix86_endbr_immediate_operand (GEN_INT (CONST_WIDE_INT_ELT (operands[3],
24428 : 0)),
24429 : VOIDmode))) &&
24430 : #line 1197 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24431 : (TARGET_64BIT)) &&
24432 : #line 14487 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24433 : ( reload_completed)))
24434 : return NULL;
24435 : return gen_split_476 (insn, operands);
24436 :
24437 : default:
24438 : return NULL;
24439 : }
24440 :
24441 : case ZERO_EXTEND:
24442 : operands[1] = x6;
24443 : switch (pattern955 (x3))
24444 : {
24445 : case 0:
24446 : if (!((
24447 : #line 14396 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24448 : (INTVAL (operands[2]) == 4 * BITS_PER_UNIT) &&
24449 : #line 1236 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24450 : (!TARGET_64BIT)) &&
24451 : #line 14398 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24452 : ( reload_completed)))
24453 : return NULL;
24454 : return gen_split_437 (insn, operands);
24455 :
24456 : case 1:
24457 : if (!((
24458 : #line 14396 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24459 : (INTVAL (operands[2]) == 8 * BITS_PER_UNIT) &&
24460 : #line 1237 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24461 : (TARGET_64BIT)) &&
24462 : #line 14398 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24463 : ( reload_completed)))
24464 : return NULL;
24465 : return gen_split_440 (insn, operands);
24466 :
24467 : default:
24468 : return NULL;
24469 : }
24470 :
24471 : case LSHIFTRT:
24472 : operands[4] = x6;
24473 : switch (pattern841 (x3))
24474 : {
24475 : case 0:
24476 : if (!(
24477 : #line 15813 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24478 : (TARGET_64BIT && TARGET_APX_NF
24479 : && INTVAL (operands[3]) == 64 - INTVAL (operands[2])
24480 : && ix86_pre_reload_split ()) &&
24481 : #line 15817 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24482 : ( 1)))
24483 : return NULL;
24484 : return gen_split_568 (insn, operands);
24485 :
24486 : case 1:
24487 : if (!(
24488 : #line 16045 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24489 : (TARGET_APX_NF
24490 : && INTVAL (operands[3]) == 32 - INTVAL (operands[2])
24491 : && ix86_pre_reload_split ()) &&
24492 : #line 16049 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24493 : ( 1)))
24494 : return NULL;
24495 : return gen_split_572 (insn, operands);
24496 :
24497 : default:
24498 : return NULL;
24499 : }
24500 :
24501 : default:
24502 : return NULL;
24503 : }
24504 :
24505 : case SIGN_EXTEND:
24506 : switch (pattern723 (x3))
24507 : {
24508 : case 0:
24509 : if (!((
24510 : #line 14432 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24511 : (INTVAL (operands[2]) == 4 * BITS_PER_UNIT) &&
24512 : #line 1236 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24513 : (!TARGET_64BIT)) &&
24514 : #line 14434 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24515 : ( reload_completed)))
24516 : return NULL;
24517 : return gen_split_449 (insn, operands);
24518 :
24519 : case 1:
24520 : if (!((
24521 : #line 14432 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24522 : (INTVAL (operands[2]) == 8 * BITS_PER_UNIT) &&
24523 : #line 1237 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24524 : (TARGET_64BIT)) &&
24525 : #line 14434 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24526 : ( reload_completed)))
24527 : return NULL;
24528 : return gen_split_455 (insn, operands);
24529 :
24530 : case 2:
24531 : if (!((
24532 : #line 14505 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24533 : (INTVAL (operands[2]) == 4 * BITS_PER_UNIT
24534 : && (DImode == DImode
24535 : ? CONST_INT_P (operands[3])
24536 : && (UINTVAL (operands[3]) & ~GET_MODE_MASK (SImode)) == 0
24537 : : CONST_INT_P (operands[3])
24538 : ? INTVAL (operands[3]) >= 0
24539 : : CONST_WIDE_INT_NUNITS (operands[3]) == 2
24540 : && CONST_WIDE_INT_ELT (operands[3], 1) == 0)
24541 : && !(CONST_INT_P (operands[3])
24542 : ? ix86_endbr_immediate_operand (operands[3], VOIDmode)
24543 : : ix86_endbr_immediate_operand (GEN_INT (CONST_WIDE_INT_ELT (operands[3],
24544 : 0)),
24545 : VOIDmode))) &&
24546 : #line 1236 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24547 : (!TARGET_64BIT)) &&
24548 : #line 14519 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24549 : ( reload_completed)))
24550 : return NULL;
24551 : return gen_split_479 (insn, operands);
24552 :
24553 : case 3:
24554 : if (!((
24555 : #line 14505 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24556 : (INTVAL (operands[2]) == 8 * BITS_PER_UNIT
24557 : && (TImode == DImode
24558 : ? CONST_INT_P (operands[3])
24559 : && (UINTVAL (operands[3]) & ~GET_MODE_MASK (SImode)) == 0
24560 : : CONST_INT_P (operands[3])
24561 : ? INTVAL (operands[3]) >= 0
24562 : : CONST_WIDE_INT_NUNITS (operands[3]) == 2
24563 : && CONST_WIDE_INT_ELT (operands[3], 1) == 0)
24564 : && !(CONST_INT_P (operands[3])
24565 : ? ix86_endbr_immediate_operand (operands[3], VOIDmode)
24566 : : ix86_endbr_immediate_operand (GEN_INT (CONST_WIDE_INT_ELT (operands[3],
24567 : 0)),
24568 : VOIDmode))) &&
24569 : #line 1237 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24570 : (TARGET_64BIT)) &&
24571 : #line 14519 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24572 : ( reload_completed)))
24573 : return NULL;
24574 : return gen_split_485 (insn, operands);
24575 :
24576 : default:
24577 : return NULL;
24578 : }
24579 :
24580 : case ZERO_EXTEND:
24581 : switch (pattern723 (x3))
24582 : {
24583 : case 0:
24584 : if (!((
24585 : #line 14432 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24586 : (INTVAL (operands[2]) == 4 * BITS_PER_UNIT) &&
24587 : #line 1236 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24588 : (!TARGET_64BIT)) &&
24589 : #line 14434 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24590 : ( reload_completed)))
24591 : return NULL;
24592 : return gen_split_452 (insn, operands);
24593 :
24594 : case 1:
24595 : if (!((
24596 : #line 14432 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24597 : (INTVAL (operands[2]) == 8 * BITS_PER_UNIT) &&
24598 : #line 1237 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24599 : (TARGET_64BIT)) &&
24600 : #line 14434 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24601 : ( reload_completed)))
24602 : return NULL;
24603 : return gen_split_458 (insn, operands);
24604 :
24605 : case 2:
24606 : if (!((
24607 : #line 14505 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24608 : (INTVAL (operands[2]) == 4 * BITS_PER_UNIT
24609 : && (DImode == DImode
24610 : ? CONST_INT_P (operands[3])
24611 : && (UINTVAL (operands[3]) & ~GET_MODE_MASK (SImode)) == 0
24612 : : CONST_INT_P (operands[3])
24613 : ? INTVAL (operands[3]) >= 0
24614 : : CONST_WIDE_INT_NUNITS (operands[3]) == 2
24615 : && CONST_WIDE_INT_ELT (operands[3], 1) == 0)
24616 : && !(CONST_INT_P (operands[3])
24617 : ? ix86_endbr_immediate_operand (operands[3], VOIDmode)
24618 : : ix86_endbr_immediate_operand (GEN_INT (CONST_WIDE_INT_ELT (operands[3],
24619 : 0)),
24620 : VOIDmode))) &&
24621 : #line 1236 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24622 : (!TARGET_64BIT)) &&
24623 : #line 14519 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24624 : ( reload_completed)))
24625 : return NULL;
24626 : return gen_split_482 (insn, operands);
24627 :
24628 : case 3:
24629 : if (!((
24630 : #line 14505 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24631 : (INTVAL (operands[2]) == 8 * BITS_PER_UNIT
24632 : && (TImode == DImode
24633 : ? CONST_INT_P (operands[3])
24634 : && (UINTVAL (operands[3]) & ~GET_MODE_MASK (SImode)) == 0
24635 : : CONST_INT_P (operands[3])
24636 : ? INTVAL (operands[3]) >= 0
24637 : : CONST_WIDE_INT_NUNITS (operands[3]) == 2
24638 : && CONST_WIDE_INT_ELT (operands[3], 1) == 0)
24639 : && !(CONST_INT_P (operands[3])
24640 : ? ix86_endbr_immediate_operand (operands[3], VOIDmode)
24641 : : ix86_endbr_immediate_operand (GEN_INT (CONST_WIDE_INT_ELT (operands[3],
24642 : 0)),
24643 : VOIDmode))) &&
24644 : #line 1237 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24645 : (TARGET_64BIT)) &&
24646 : #line 14519 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24647 : ( reload_completed)))
24648 : return NULL;
24649 : return gen_split_488 (insn, operands);
24650 :
24651 : default:
24652 : return NULL;
24653 : }
24654 :
24655 : default:
24656 : return NULL;
24657 : }
24658 :
24659 : case ZERO_EXTEND:
24660 : switch (pattern405 (x3))
24661 : {
24662 : case 0:
24663 : if (!((
24664 : #line 14413 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24665 : (INTVAL (operands[3]) == 4 * BITS_PER_UNIT) &&
24666 : #line 1236 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24667 : (!TARGET_64BIT)) &&
24668 : #line 14415 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24669 : ( reload_completed)))
24670 : return NULL;
24671 : return gen_split_443 (insn, operands);
24672 :
24673 : case 1:
24674 : if (!((
24675 : #line 14413 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24676 : (INTVAL (operands[3]) == 8 * BITS_PER_UNIT) &&
24677 : #line 1237 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24678 : (TARGET_64BIT)) &&
24679 : #line 14415 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24680 : ( reload_completed)))
24681 : return NULL;
24682 : return gen_split_446 (insn, operands);
24683 :
24684 : case 2:
24685 : if (!((
24686 : #line 14457 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24687 : (INTVAL (operands[3]) == 4 * BITS_PER_UNIT) &&
24688 : #line 1236 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24689 : (!TARGET_64BIT)) &&
24690 : #line 14459 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24691 : ( reload_completed)))
24692 : return NULL;
24693 : return gen_split_461 (insn, operands);
24694 :
24695 : case 3:
24696 : if (!((
24697 : #line 14457 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24698 : (INTVAL (operands[3]) == 8 * BITS_PER_UNIT) &&
24699 : #line 1237 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24700 : (TARGET_64BIT)) &&
24701 : #line 14459 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24702 : ( reload_completed)))
24703 : return NULL;
24704 : return gen_split_467 (insn, operands);
24705 :
24706 : case 4:
24707 : if (!((
24708 : #line 14457 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24709 : (INTVAL (operands[3]) == 4 * BITS_PER_UNIT) &&
24710 : #line 1236 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24711 : (!TARGET_64BIT)) &&
24712 : #line 14459 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24713 : ( reload_completed)))
24714 : return NULL;
24715 : return gen_split_464 (insn, operands);
24716 :
24717 : case 5:
24718 : if (!((
24719 : #line 14457 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24720 : (INTVAL (operands[3]) == 8 * BITS_PER_UNIT) &&
24721 : #line 1237 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24722 : (TARGET_64BIT)) &&
24723 : #line 14459 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24724 : ( reload_completed)))
24725 : return NULL;
24726 : return gen_split_470 (insn, operands);
24727 :
24728 : case 6:
24729 : if (!((
24730 : #line 14534 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24731 : (DImode == DImode
24732 : ? CONST_INT_P (operands[2])
24733 : && (UINTVAL (operands[2]) & GET_MODE_MASK (SImode)) == 0
24734 : && !ix86_endbr_immediate_operand (operands[2], VOIDmode)
24735 : : CONST_WIDE_INT_P (operands[2])
24736 : && CONST_WIDE_INT_NUNITS (operands[2]) == 2
24737 : && CONST_WIDE_INT_ELT (operands[2], 0) == 0
24738 : && !ix86_endbr_immediate_operand (GEN_INT (CONST_WIDE_INT_ELT (operands[2],
24739 : 1)),
24740 : VOIDmode)) &&
24741 : #line 1236 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24742 : (!TARGET_64BIT)) &&
24743 : #line 14545 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24744 : ( reload_completed)))
24745 : return NULL;
24746 : return gen_split_491 (insn, operands);
24747 :
24748 : case 7:
24749 : if (!((
24750 : #line 14534 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24751 : (TImode == DImode
24752 : ? CONST_INT_P (operands[2])
24753 : && (UINTVAL (operands[2]) & GET_MODE_MASK (SImode)) == 0
24754 : && !ix86_endbr_immediate_operand (operands[2], VOIDmode)
24755 : : CONST_WIDE_INT_P (operands[2])
24756 : && CONST_WIDE_INT_NUNITS (operands[2]) == 2
24757 : && CONST_WIDE_INT_ELT (operands[2], 0) == 0
24758 : && !ix86_endbr_immediate_operand (GEN_INT (CONST_WIDE_INT_ELT (operands[2],
24759 : 1)),
24760 : VOIDmode)) &&
24761 : #line 1237 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24762 : (TARGET_64BIT)) &&
24763 : #line 14545 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24764 : ( reload_completed)))
24765 : return NULL;
24766 : return gen_split_494 (insn, operands);
24767 :
24768 : default:
24769 : return NULL;
24770 : }
24771 :
24772 : case LSHIFTRT:
24773 : x7 = XEXP (x3, 1);
24774 : if (GET_CODE (x7) != ASHIFT)
24775 : return NULL;
24776 : x6 = XEXP (x4, 0);
24777 : operands[4] = x6;
24778 : x5 = XEXP (x4, 1);
24779 : operands[2] = x5;
24780 : switch (pattern841 (x3))
24781 : {
24782 : case 0:
24783 : if (!(
24784 : #line 17196 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24785 : (TARGET_64BIT && TARGET_APX_NF
24786 : && INTVAL (operands[3]) == 64 - INTVAL (operands[2])
24787 : && ix86_pre_reload_split ()) &&
24788 : #line 17200 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24789 : ( 1)))
24790 : return NULL;
24791 : return gen_split_615 (insn, operands);
24792 :
24793 : case 1:
24794 : if (!(
24795 : #line 17427 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24796 : (TARGET_APX_NF
24797 : && INTVAL (operands[3]) == 32 - INTVAL (operands[2])
24798 : && ix86_pre_reload_split ()) &&
24799 : #line 17431 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24800 : ( 1)))
24801 : return NULL;
24802 : return gen_split_619 (insn, operands);
24803 :
24804 : default:
24805 : return NULL;
24806 : }
24807 :
24808 : default:
24809 : return NULL;
24810 : }
24811 : }
24812 :
24813 : rtx_insn *
24814 : split_19 (rtx x1 ATTRIBUTE_UNUSED, rtx_insn *insn ATTRIBUTE_UNUSED)
24815 : {
24816 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
24817 : rtx x2, x3;
24818 : rtx_insn *res ATTRIBUTE_UNUSED;
24819 : x2 = XVECEXP (x1, 0, 0);
24820 : switch (pattern1186 (x2))
24821 : {
24822 : case 0:
24823 : switch (GET_MODE (operands[0]))
24824 : {
24825 : case E_DImode:
24826 : x3 = XEXP (x2, 1);
24827 : if (GET_MODE (x3) != E_DImode)
24828 : return NULL;
24829 : if (nonimmediate_operand (operands[0], E_DImode)
24830 : && nonimmediate_operand (operands[1], E_DImode)
24831 : && x86_64_hilo_general_operand (operands[2], E_DImode)
24832 : && ((
24833 : #line 6516 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24834 : (ix86_binary_operator_ok (PLUS, DImode, operands, TARGET_APX_NDD)) &&
24835 : #line 1236 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24836 : (!TARGET_64BIT)) &&
24837 : #line 6518 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24838 : ( reload_completed)))
24839 : return gen_split_104 (insn, operands);
24840 : if (!register_operand (operands[0], E_DImode)
24841 : || !register_operand (operands[1], E_DImode)
24842 : || !x86_64_nonmemory_operand (operands[2], E_DImode))
24843 : return NULL;
24844 : if ((
24845 : #line 7098 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24846 : (reload_completed && ix86_avoid_lea_for_add (insn, operands)) &&
24847 : #line 1168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24848 : (TARGET_64BIT)))
24849 : return gen_split_129 (insn, operands);
24850 : if (!(
24851 : #line 7124 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24852 : (reload_completed && ix86_lea_for_add_ok (insn, operands)) &&
24853 : #line 1162 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24854 : (TARGET_64BIT)))
24855 : return NULL;
24856 : return gen_split_134 (insn, operands);
24857 :
24858 : case E_TImode:
24859 : x3 = XEXP (x2, 1);
24860 : if (pattern566 (x3,
24861 : E_TImode) != 0
24862 : || !((
24863 : #line 6516 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24864 : (ix86_binary_operator_ok (PLUS, TImode, operands, TARGET_APX_NDD)) &&
24865 : #line 1237 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24866 : (TARGET_64BIT)) &&
24867 : #line 6518 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24868 : ( reload_completed)))
24869 : return NULL;
24870 : return gen_split_105 (insn, operands);
24871 :
24872 : case E_SImode:
24873 : x3 = XEXP (x2, 1);
24874 : if (pattern1434 (x3,
24875 : E_SImode) != 0)
24876 : return NULL;
24877 : if (
24878 : #line 7098 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24879 : (reload_completed && ix86_avoid_lea_for_add (insn, operands)))
24880 : return gen_split_128 (insn, operands);
24881 : if (!
24882 : #line 7124 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24883 : (reload_completed && ix86_lea_for_add_ok (insn, operands)))
24884 : return NULL;
24885 : return gen_split_133 (insn, operands);
24886 :
24887 : case E_QImode:
24888 : x3 = XEXP (x2, 1);
24889 : if (pattern1343 (x3,
24890 : E_QImode) != 0
24891 : || !
24892 : #line 7124 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24893 : (reload_completed && ix86_lea_for_add_ok (insn, operands)))
24894 : return NULL;
24895 : return gen_split_131 (insn, operands);
24896 :
24897 : case E_HImode:
24898 : if (!register_operand (operands[0], E_HImode))
24899 : return NULL;
24900 : x3 = XEXP (x2, 1);
24901 : if (GET_MODE (x3) != E_HImode
24902 : || !register_operand (operands[1], E_HImode)
24903 : || !nonmemory_operand (operands[2], E_HImode)
24904 : || !
24905 : #line 7124 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24906 : (reload_completed && ix86_lea_for_add_ok (insn, operands)))
24907 : return NULL;
24908 : return gen_split_132 (insn, operands);
24909 :
24910 : default:
24911 : return NULL;
24912 : }
24913 :
24914 : case 1:
24915 : if (!(
24916 : #line 6997 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24917 : (!TARGET_PARTIAL_REG_STALL || optimize_function_for_size_p (cfun)) &&
24918 : #line 7020 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24919 : ( reload_completed
24920 : && !(rtx_equal_p (operands[0], operands[1])
24921 : || rtx_equal_p (operands[0], operands[2])))))
24922 : return NULL;
24923 : return gen_split_120 (insn, operands);
24924 :
24925 : case 2:
24926 : if (!(
24927 : #line 6997 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24928 : (!TARGET_PARTIAL_REG_STALL || optimize_function_for_size_p (cfun)) &&
24929 : #line 7020 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24930 : ( reload_completed
24931 : && !(rtx_equal_p (operands[0], operands[1])
24932 : || rtx_equal_p (operands[0], operands[2])))))
24933 : return NULL;
24934 : return gen_split_121 (insn, operands);
24935 :
24936 : default:
24937 : return NULL;
24938 : }
24939 : }
24940 :
24941 : rtx_insn *
24942 : split_25 (rtx x1 ATTRIBUTE_UNUSED, rtx_insn *insn ATTRIBUTE_UNUSED)
24943 : {
24944 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
24945 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
24946 : rtx x10;
24947 : rtx_insn *res ATTRIBUTE_UNUSED;
24948 : x2 = XVECEXP (x1, 0, 1);
24949 : if (pattern236 (x2,
24950 : E_CCmode,
24951 : 17) != 0)
24952 : return NULL;
24953 : x3 = XVECEXP (x1, 0, 0);
24954 : x4 = XEXP (x3, 1);
24955 : x5 = XEXP (x4, 0);
24956 : switch (GET_CODE (x5))
24957 : {
24958 : case CONST_INT:
24959 : case CONST_WIDE_INT:
24960 : case CONST_POLY_INT:
24961 : case CONST_FIXED:
24962 : case CONST_DOUBLE:
24963 : case CONST_VECTOR:
24964 : case CONST:
24965 : case REG:
24966 : case SUBREG:
24967 : case MEM:
24968 : case LABEL_REF:
24969 : case SYMBOL_REF:
24970 : case HIGH:
24971 : operands[1] = x5;
24972 : switch (pattern1186 (x3))
24973 : {
24974 : case 0:
24975 : switch (GET_MODE (operands[0]))
24976 : {
24977 : case E_DImode:
24978 : if (nonimmediate_operand (operands[0], E_DImode)
24979 : && GET_MODE (x4) == E_DImode
24980 : && nonimmediate_operand (operands[1], E_DImode))
24981 : {
24982 : if (x86_64_hilo_general_operand (operands[2], E_DImode)
24983 : && ((
24984 : #line 12843 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24985 : (ix86_binary_operator_ok (AND, DImode, operands, TARGET_APX_NDD)) &&
24986 : #line 1236 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24987 : (!TARGET_64BIT)) &&
24988 : #line 12845 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24989 : ( reload_completed)))
24990 : return gen_split_289 (insn, operands);
24991 : if (const_int_operand (operands[2], E_DImode)
24992 : && (
24993 : #line 12918 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24994 : (TARGET_64BIT && TARGET_USE_BT
24995 : && ix86_binary_operator_ok (AND, DImode, operands)
24996 : && IN_RANGE (exact_log2 (~INTVAL (operands[2])), 31, 63)) &&
24997 : #line 12922 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24998 : ( reload_completed)))
24999 : return gen_split_291 (insn, operands);
25000 : }
25001 : break;
25002 :
25003 : case E_TImode:
25004 : if (pattern566 (x4,
25005 : E_TImode) == 0
25006 : && ((
25007 : #line 12843 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25008 : (ix86_binary_operator_ok (AND, TImode, operands, TARGET_APX_NDD)) &&
25009 : #line 1237 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25010 : (TARGET_64BIT)) &&
25011 : #line 12845 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25012 : ( reload_completed)))
25013 : return gen_split_290 (insn, operands);
25014 : break;
25015 :
25016 : case E_HImode:
25017 : if (pattern1365 (x4,
25018 : E_HImode) == 0
25019 : &&
25020 : #line 13161 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25021 : (reload_completed
25022 : && (!REG_P (operands[1])
25023 : || REGNO (operands[0]) != REGNO (operands[1]))
25024 : && (UINTVAL (operands[2]) == GET_MODE_MASK (SImode)
25025 : || UINTVAL (operands[2]) == GET_MODE_MASK (HImode)
25026 : || UINTVAL (operands[2]) == GET_MODE_MASK (QImode))))
25027 : return gen_split_317 (insn, operands);
25028 : break;
25029 :
25030 : case E_SImode:
25031 : if (pattern1365 (x4,
25032 : E_SImode) == 0
25033 : &&
25034 : #line 13161 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25035 : (reload_completed
25036 : && (!REG_P (operands[1])
25037 : || REGNO (operands[0]) != REGNO (operands[1]))
25038 : && (UINTVAL (operands[2]) == GET_MODE_MASK (SImode)
25039 : || UINTVAL (operands[2]) == GET_MODE_MASK (HImode)
25040 : || UINTVAL (operands[2]) == GET_MODE_MASK (QImode))))
25041 : return gen_split_318 (insn, operands);
25042 : break;
25043 :
25044 : default:
25045 : break;
25046 : }
25047 : break;
25048 :
25049 : case 1:
25050 : if ((
25051 : #line 13083 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25052 : (!TARGET_PARTIAL_REG_STALL || optimize_function_for_size_p (cfun)) &&
25053 : #line 13087 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25054 : ( reload_completed
25055 : && !(rtx_equal_p (operands[0], operands[1])
25056 : || rtx_equal_p (operands[0], operands[2])))))
25057 : return gen_split_293 (insn, operands);
25058 : break;
25059 :
25060 : case 2:
25061 : if ((
25062 : #line 13083 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25063 : (!TARGET_PARTIAL_REG_STALL || optimize_function_for_size_p (cfun)) &&
25064 : #line 13087 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25065 : ( reload_completed
25066 : && !(rtx_equal_p (operands[0], operands[1])
25067 : || rtx_equal_p (operands[0], operands[2])))))
25068 : return gen_split_296 (insn, operands);
25069 : break;
25070 :
25071 : default:
25072 : break;
25073 : }
25074 : x6 = XEXP (x4, 1);
25075 : if (GET_CODE (x6) == CONST_INT)
25076 : {
25077 : res = split_21 (x1, insn);
25078 : if (res != NULL_RTX)
25079 : return res;
25080 : }
25081 : if (GET_CODE (x5) == SUBREG
25082 : && known_eq (SUBREG_BYTE (x5), 0))
25083 : {
25084 : res = split_22 (x1, insn);
25085 : if (res != NULL_RTX)
25086 : return res;
25087 : }
25088 : if (GET_CODE (x6) != CONST_INT)
25089 : return NULL;
25090 : operands[2] = x6;
25091 : if (const_int_operand (operands[2], E_DImode))
25092 : {
25093 : x7 = XEXP (x3, 0);
25094 : operands[0] = x7;
25095 : if (register_operand (operands[0], E_DImode)
25096 : && GET_MODE (x4) == E_DImode)
25097 : {
25098 : operands[1] = x5;
25099 : if (nonimmediate_operand (operands[1], E_DImode)
25100 : && (
25101 : #line 13161 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25102 : (reload_completed
25103 : && (!REG_P (operands[1])
25104 : || REGNO (operands[0]) != REGNO (operands[1]))
25105 : && (UINTVAL (operands[2]) == GET_MODE_MASK (SImode)
25106 : || UINTVAL (operands[2]) == GET_MODE_MASK (HImode)
25107 : || UINTVAL (operands[2]) == GET_MODE_MASK (QImode))) &&
25108 : #line 1165 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25109 : (TARGET_64BIT)))
25110 : return gen_split_319 (insn, operands);
25111 : }
25112 : }
25113 : x7 = XEXP (x3, 0);
25114 : operands[0] = x7;
25115 : if (GET_MODE (x4) != E_DImode)
25116 : return NULL;
25117 : if (rtx_equal_p (x5, operands[0]))
25118 : {
25119 : switch (XWINT (x6, 0))
25120 : {
25121 : case -65536L:
25122 : if (register_operand (operands[0], E_DImode)
25123 : && (
25124 : #line 13196 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25125 : ((TARGET_FAST_PREFIX && !TARGET_PARTIAL_REG_STALL)
25126 : || optimize_function_for_size_p (cfun)) &&
25127 : #line 1168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25128 : (TARGET_64BIT)))
25129 : return gen_split_321 (insn, operands);
25130 : break;
25131 :
25132 : case -256L:
25133 : if (any_QIreg_operand (operands[0], E_DImode)
25134 : && (
25135 : #line 13206 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25136 : ((!TARGET_PARTIAL_REG_STALL || optimize_function_for_size_p (cfun))
25137 : && reload_completed) &&
25138 : #line 1165 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25139 : (TARGET_64BIT)))
25140 : return gen_split_324 (insn, operands);
25141 : break;
25142 :
25143 : case -65281L:
25144 : if (QIreg_operand (operands[0], E_DImode)
25145 : && (
25146 : #line 13216 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25147 : ((!TARGET_PARTIAL_REG_STALL || optimize_function_for_size_p (cfun))
25148 : && reload_completed) &&
25149 : #line 1165 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25150 : (TARGET_64BIT)))
25151 : return gen_split_327 (insn, operands);
25152 : break;
25153 :
25154 : default:
25155 : break;
25156 : }
25157 : }
25158 : operands[1] = x5;
25159 : if (register_operand (operands[1], E_DImode)
25160 : && QIreg_operand (operands[0], E_DImode))
25161 : {
25162 : operands[2] = x6;
25163 : if (const_int_operand (operands[2], E_DImode)
25164 : && (
25165 : #line 13581 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25166 : (reload_completed
25167 : && (!TARGET_PARTIAL_REG_STALL || optimize_function_for_size_p (cfun))
25168 : && !(~INTVAL (operands[2]) & ~(255 << 8))
25169 : && !(TARGET_APX_NDD && REGNO (operands[0]) != REGNO (operands[1]))) &&
25170 : #line 1165 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25171 : (TARGET_64BIT)))
25172 : return gen_split_375 (insn, operands);
25173 : }
25174 : if (general_operand (operands[1], E_DImode)
25175 : && any_QIreg_operand (operands[0], E_DImode))
25176 : {
25177 : operands[2] = x6;
25178 : if (const_int_operand (operands[2], E_DImode)
25179 : && (
25180 : #line 13610 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25181 : (reload_completed
25182 : && (!TARGET_PARTIAL_REG_STALL || optimize_function_for_size_p (cfun))
25183 : && !(~INTVAL (operands[2]) & ~255)
25184 : && !(INTVAL (operands[2]) & 128)
25185 : && !(TARGET_APX_NDD
25186 : && !rtx_equal_p (operands[0], operands[1]))) &&
25187 : #line 1165 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25188 : (TARGET_64BIT)))
25189 : return gen_split_378 (insn, operands);
25190 : }
25191 : if (GET_CODE (x5) != SUBREG
25192 : || maybe_ne (SUBREG_BYTE (x5), 0)
25193 : || GET_MODE (x5) != E_DImode
25194 : || XWINT (x6, 0) != 63L
25195 : || !register_operand (operands[0], E_DImode))
25196 : return NULL;
25197 : x8 = XEXP (x5, 0);
25198 : if (GET_MODE (x8) != E_SImode)
25199 : return NULL;
25200 : switch (GET_CODE (x8))
25201 : {
25202 : case CTZ:
25203 : x9 = XEXP (x8, 0);
25204 : operands[1] = x9;
25205 : if (!nonimmediate_operand (operands[1], E_SImode)
25206 : || !(
25207 : #line 21489 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25208 : (TARGET_BMI && TARGET_64BIT) &&
25209 : #line 21491 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25210 : ( (TARGET_AVOID_FALSE_DEP_FOR_BMI || TARGET_AVOID_FALSE_DEP_FOR_TZCNT)
25211 : && epilogue_completed
25212 : && optimize_function_for_speed_p (cfun)
25213 : && !reg_mentioned_p (operands[0], operands[1]))))
25214 : return NULL;
25215 : return gen_split_881 (insn, operands);
25216 :
25217 : case CLZ:
25218 : x9 = XEXP (x8, 0);
25219 : operands[1] = x9;
25220 : if (!nonimmediate_operand (operands[1], E_SImode)
25221 : || !(
25222 : #line 21930 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25223 : (TARGET_LZCNT && TARGET_64BIT) &&
25224 : #line 21932 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25225 : ( TARGET_AVOID_FALSE_DEP_FOR_BMI && epilogue_completed
25226 : && optimize_function_for_speed_p (cfun)
25227 : && !reg_mentioned_p (operands[0], operands[1]))))
25228 : return NULL;
25229 : return gen_split_898 (insn, operands);
25230 :
25231 : case POPCOUNT:
25232 : x9 = XEXP (x8, 0);
25233 : operands[1] = x9;
25234 : if (!nonimmediate_operand (operands[1], E_SImode)
25235 : || !(
25236 : #line 22757 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25237 : (TARGET_POPCNT && TARGET_64BIT) &&
25238 : #line 22765 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25239 : ( TARGET_AVOID_FALSE_DEP_FOR_BMI && epilogue_completed
25240 : && optimize_function_for_speed_p (cfun)
25241 : && !reg_mentioned_p (operands[0], operands[1]))))
25242 : return NULL;
25243 : return gen_split_922 (insn, operands);
25244 :
25245 : default:
25246 : return NULL;
25247 : }
25248 :
25249 : case NOT:
25250 : x7 = XEXP (x3, 0);
25251 : operands[0] = x7;
25252 : x8 = XEXP (x5, 0);
25253 : switch (GET_CODE (x8))
25254 : {
25255 : case REG:
25256 : case SUBREG:
25257 : operands[1] = x8;
25258 : x6 = XEXP (x4, 1);
25259 : operands[2] = x6;
25260 : switch (GET_MODE (operands[0]))
25261 : {
25262 : case E_DImode:
25263 : if (pattern1444 (x4,
25264 : E_DImode) == 0)
25265 : {
25266 : if (((
25267 : #line 13632 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25268 : (TARGET_BMI) &&
25269 : #line 1236 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25270 : (!TARGET_64BIT)) &&
25271 : #line 13634 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25272 : ( reload_completed)))
25273 : return gen_split_379 (insn, operands);
25274 : if (((
25275 : #line 13650 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25276 : (!TARGET_BMI
25277 : && ix86_pre_reload_split ()) &&
25278 : #line 1196 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25279 : (!TARGET_64BIT)) &&
25280 : #line 13653 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25281 : ( 1)))
25282 : return gen_split_381 (insn, operands);
25283 : }
25284 : break;
25285 :
25286 : case E_TImode:
25287 : if (pattern1444 (x4,
25288 : E_TImode) == 0)
25289 : {
25290 : if (((
25291 : #line 13632 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25292 : (TARGET_BMI) &&
25293 : #line 1237 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25294 : (TARGET_64BIT)) &&
25295 : #line 13634 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25296 : ( reload_completed)))
25297 : return gen_split_380 (insn, operands);
25298 : if (((
25299 : #line 13650 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25300 : (!TARGET_BMI
25301 : && ix86_pre_reload_split ()) &&
25302 : #line 1197 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25303 : (TARGET_64BIT)) &&
25304 : #line 13653 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25305 : ( 1)))
25306 : return gen_split_382 (insn, operands);
25307 : }
25308 : break;
25309 :
25310 : case E_SImode:
25311 : if (pattern1444 (x4,
25312 : E_SImode) == 0
25313 : &&
25314 : #line 13718 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25315 : (reload_completed
25316 : && optimize_insn_for_size_p () && optimize_size > 1
25317 : && REGNO (operands[0]) == REGNO (operands[1])
25318 : && LEGACY_INT_REG_P (operands[0])
25319 : && !REX_INT_REG_P (operands[2])
25320 : && !reg_overlap_mentioned_p (operands[0], operands[2])))
25321 : return gen_split_383 (insn, operands);
25322 : break;
25323 :
25324 : default:
25325 : break;
25326 : }
25327 : if (GET_CODE (x8) != SUBREG
25328 : || maybe_ne (SUBREG_BYTE (x8), 0)
25329 : || GET_MODE (x8) != E_QImode)
25330 : return NULL;
25331 : x9 = XEXP (x8, 0);
25332 : if (GET_CODE (x9) != LSHIFTRT
25333 : || x6 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
25334 : return NULL;
25335 : switch (pattern1539 (x4))
25336 : {
25337 : case 0:
25338 : if (!(
25339 : #line 19704 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25340 : (TARGET_USE_BT && ix86_pre_reload_split ()) &&
25341 : #line 19706 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25342 : ( 1)))
25343 : return NULL;
25344 : return gen_split_844 (insn, operands);
25345 :
25346 : case 1:
25347 : if (!((
25348 : #line 19704 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25349 : (TARGET_USE_BT && ix86_pre_reload_split ()) &&
25350 : #line 1168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25351 : (TARGET_64BIT)) &&
25352 : #line 19706 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25353 : ( 1)))
25354 : return NULL;
25355 : return gen_split_845 (insn, operands);
25356 :
25357 : default:
25358 : return NULL;
25359 : }
25360 :
25361 : case LSHIFTRT:
25362 : x6 = XEXP (x4, 1);
25363 : if (x6 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
25364 : return NULL;
25365 : switch (pattern1255 (x4))
25366 : {
25367 : case 0:
25368 : if (!(
25369 : #line 19722 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25370 : (TARGET_USE_BT && ix86_pre_reload_split ()) &&
25371 : #line 19724 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25372 : ( 1)))
25373 : return NULL;
25374 : return gen_split_846 (insn, operands);
25375 :
25376 : case 1:
25377 : if (!((
25378 : #line 19722 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25379 : (TARGET_USE_BT && ix86_pre_reload_split ()) &&
25380 : #line 1168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25381 : (TARGET_64BIT)) &&
25382 : #line 19724 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25383 : ( 1)))
25384 : return NULL;
25385 : return gen_split_847 (insn, operands);
25386 :
25387 : default:
25388 : return NULL;
25389 : }
25390 :
25391 : default:
25392 : return NULL;
25393 : }
25394 :
25395 : case ROTATE:
25396 : switch (pattern1068 (x3,
25397 : -2))
25398 : {
25399 : case 0:
25400 : if (!(
25401 : #line 19252 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25402 : (TARGET_USE_BT
25403 : && (INTVAL (operands[2]) & (GET_MODE_BITSIZE (SImode)-1))
25404 : == GET_MODE_BITSIZE (SImode)-1
25405 : && ix86_pre_reload_split ()) &&
25406 : #line 19257 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25407 : ( 1)))
25408 : return NULL;
25409 : return gen_split_810 (insn, operands);
25410 :
25411 : case 1:
25412 : if (!((
25413 : #line 19252 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25414 : (TARGET_USE_BT
25415 : && (INTVAL (operands[2]) & (GET_MODE_BITSIZE (DImode)-1))
25416 : == GET_MODE_BITSIZE (DImode)-1
25417 : && ix86_pre_reload_split ()) &&
25418 : #line 1168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25419 : (TARGET_64BIT)) &&
25420 : #line 19257 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25421 : ( 1)))
25422 : return NULL;
25423 : return gen_split_811 (insn, operands);
25424 :
25425 : case 2:
25426 : if (!(
25427 : #line 19280 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25428 : (TARGET_USE_BT
25429 : && (INTVAL (operands[2]) & (GET_MODE_BITSIZE (SImode)-1))
25430 : == GET_MODE_BITSIZE (SImode)-1
25431 : && ix86_pre_reload_split ()) &&
25432 : #line 19285 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25433 : ( 1)))
25434 : return NULL;
25435 : return gen_split_812 (insn, operands);
25436 :
25437 : case 3:
25438 : if (!((
25439 : #line 19280 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25440 : (TARGET_USE_BT
25441 : && (INTVAL (operands[2]) & (GET_MODE_BITSIZE (DImode)-1))
25442 : == GET_MODE_BITSIZE (DImode)-1
25443 : && ix86_pre_reload_split ()) &&
25444 : #line 1168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25445 : (TARGET_64BIT)) &&
25446 : #line 19285 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25447 : ( 1)))
25448 : return NULL;
25449 : return gen_split_813 (insn, operands);
25450 :
25451 : default:
25452 : return NULL;
25453 : }
25454 :
25455 : case NEG:
25456 : switch (pattern952 (x3))
25457 : {
25458 : case 0:
25459 : if (!(
25460 : #line 22135 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25461 : (TARGET_BMI) &&
25462 : #line 22137 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25463 : ( TARGET_AVOID_FALSE_DEP_FOR_BLS
25464 : && epilogue_completed
25465 : && optimize_function_for_speed_p (cfun)
25466 : && !reg_mentioned_p (operands[0], operands[1]))))
25467 : return NULL;
25468 : return gen_split_908 (insn, operands);
25469 :
25470 : case 1:
25471 : if (!((
25472 : #line 22135 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25473 : (TARGET_BMI) &&
25474 : #line 1168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25475 : (TARGET_64BIT)) &&
25476 : #line 22137 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25477 : ( TARGET_AVOID_FALSE_DEP_FOR_BLS
25478 : && epilogue_completed
25479 : && optimize_function_for_speed_p (cfun)
25480 : && !reg_mentioned_p (operands[0], operands[1]))))
25481 : return NULL;
25482 : return gen_split_909 (insn, operands);
25483 :
25484 : default:
25485 : return NULL;
25486 : }
25487 :
25488 : case PLUS:
25489 : x10 = XEXP (x5, 1);
25490 : if (x10 != const_int_rtx[MAX_SAVED_CONST_INT + -1])
25491 : return NULL;
25492 : switch (pattern952 (x3))
25493 : {
25494 : case 0:
25495 : if (!(
25496 : #line 22280 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25497 : (TARGET_BMI) &&
25498 : #line 22282 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25499 : ( TARGET_AVOID_FALSE_DEP_FOR_BLS
25500 : && epilogue_completed
25501 : && optimize_function_for_speed_p (cfun)
25502 : && !reg_mentioned_p (operands[0], operands[1]))))
25503 : return NULL;
25504 : return gen_split_914 (insn, operands);
25505 :
25506 : case 1:
25507 : if (!((
25508 : #line 22280 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25509 : (TARGET_BMI) &&
25510 : #line 1168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25511 : (TARGET_64BIT)) &&
25512 : #line 22282 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25513 : ( TARGET_AVOID_FALSE_DEP_FOR_BLS
25514 : && epilogue_completed
25515 : && optimize_function_for_speed_p (cfun)
25516 : && !reg_mentioned_p (operands[0], operands[1]))))
25517 : return NULL;
25518 : return gen_split_915 (insn, operands);
25519 :
25520 : default:
25521 : return NULL;
25522 : }
25523 :
25524 : default:
25525 : return NULL;
25526 : }
25527 : }
25528 :
25529 : rtx_insn *
25530 : split_36 (rtx x1 ATTRIBUTE_UNUSED, rtx_insn *insn ATTRIBUTE_UNUSED)
25531 : {
25532 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
25533 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
25534 : rtx x10, x11, x12, x13, x14, x15, x16, x17;
25535 : rtx x18, x19, x20, x21;
25536 : rtx_insn *res ATTRIBUTE_UNUSED;
25537 : x2 = XVECEXP (x1, 0, 0);
25538 : switch (GET_CODE (x2))
25539 : {
25540 : case SET:
25541 : x3 = XEXP (x2, 1);
25542 : switch (GET_CODE (x3))
25543 : {
25544 : case CONST_INT:
25545 : case CONST_DOUBLE:
25546 : case CONST_VECTOR:
25547 : operands[1] = x3;
25548 : if (pattern344 (x1) == 0)
25549 : {
25550 : switch (GET_MODE (operands[0]))
25551 : {
25552 : case E_HImode:
25553 : if (memory_operand (operands[0], E_HImode)
25554 : && const0_operand (operands[1], E_HImode)
25555 : && (
25556 : #line 2441 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25557 : (reload_completed) &&
25558 : #line 2443 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25559 : ( !(optimize_insn_for_size_p () && optimize_size > 1))))
25560 : return gen_split_14 (insn, operands);
25561 : if (nonimmediate_operand (operands[0], E_HImode)
25562 : && constm1_operand (operands[1], E_HImode)
25563 : && (
25564 : #line 2456 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25565 : (reload_completed) &&
25566 : #line 2458 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25567 : ( !(optimize_insn_for_size_p () && optimize_size > 1))))
25568 : return gen_split_17 (insn, operands);
25569 : break;
25570 :
25571 : case E_SImode:
25572 : if (memory_operand (operands[0], E_SImode)
25573 : && const0_operand (operands[1], E_SImode)
25574 : && (
25575 : #line 2441 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25576 : (reload_completed) &&
25577 : #line 2443 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25578 : ( !(optimize_insn_for_size_p () && optimize_size > 1))))
25579 : return gen_split_15 (insn, operands);
25580 : if (nonimmediate_operand (operands[0], E_SImode)
25581 : && constm1_operand (operands[1], E_SImode)
25582 : && (
25583 : #line 2456 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25584 : (reload_completed) &&
25585 : #line 2458 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25586 : ( !(optimize_insn_for_size_p () && optimize_size > 1))))
25587 : return gen_split_18 (insn, operands);
25588 : break;
25589 :
25590 : case E_DImode:
25591 : if (memory_operand (operands[0], E_DImode)
25592 : && const0_operand (operands[1], E_DImode)
25593 : && ((
25594 : #line 2441 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25595 : (reload_completed) &&
25596 : #line 1165 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25597 : (TARGET_64BIT)) &&
25598 : #line 2443 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25599 : ( !(optimize_insn_for_size_p () && optimize_size > 1))))
25600 : return gen_split_16 (insn, operands);
25601 : if (nonimmediate_operand (operands[0], E_DImode)
25602 : && constm1_operand (operands[1], E_DImode)
25603 : && ((
25604 : #line 2456 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25605 : (reload_completed) &&
25606 : #line 1165 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25607 : (TARGET_64BIT)) &&
25608 : #line 2458 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25609 : ( !(optimize_insn_for_size_p () && optimize_size > 1))))
25610 : return gen_split_19 (insn, operands);
25611 : break;
25612 :
25613 : default:
25614 : break;
25615 : }
25616 : }
25617 : if (x3 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
25618 : return NULL;
25619 : x4 = XEXP (x2, 0);
25620 : if (GET_CODE (x4) != ZERO_EXTRACT
25621 : || GET_MODE (x4) != E_HImode)
25622 : return NULL;
25623 : x5 = XEXP (x4, 1);
25624 : if (x5 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
25625 : return NULL;
25626 : x6 = XVECEXP (x1, 0, 1);
25627 : if (pattern236 (x6,
25628 : E_CCmode,
25629 : 17) != 0)
25630 : return NULL;
25631 : x7 = XEXP (x4, 0);
25632 : operands[0] = x7;
25633 : x8 = XEXP (x4, 2);
25634 : operands[1] = x8;
25635 : if (!register_operand (operands[1], E_QImode))
25636 : return NULL;
25637 : switch (GET_MODE (operands[0]))
25638 : {
25639 : case E_QImode:
25640 : if (nonimmediate_operand (operands[0], E_QImode)
25641 : && (
25642 : #line 19323 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25643 : (TARGET_USE_BT && ix86_pre_reload_split ()) &&
25644 : #line 19325 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25645 : ( MEM_P (operands[0]))))
25646 : return gen_split_816 (insn, operands);
25647 : if (!register_operand (operands[0], E_QImode)
25648 : || !
25649 : #line 19347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25650 : (TARGET_USE_BT && ix86_pre_reload_split ()))
25651 : return NULL;
25652 : return gen_split_818 (insn, operands);
25653 :
25654 : case E_HImode:
25655 : if (nonimmediate_operand (operands[0], E_HImode)
25656 : && (
25657 : #line 19323 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25658 : (TARGET_USE_BT && ix86_pre_reload_split ()) &&
25659 : #line 19325 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25660 : ( MEM_P (operands[0]))))
25661 : return gen_split_817 (insn, operands);
25662 : if (!register_operand (operands[0], E_HImode)
25663 : || !
25664 : #line 19347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25665 : (TARGET_USE_BT && ix86_pre_reload_split ()))
25666 : return NULL;
25667 : return gen_split_819 (insn, operands);
25668 :
25669 : default:
25670 : return NULL;
25671 : }
25672 :
25673 : case ASHIFTRT:
25674 : case LSHIFTRT:
25675 : case SIGN_EXTRACT:
25676 : case ZERO_EXTRACT:
25677 : x6 = XVECEXP (x1, 0, 1);
25678 : if (pattern236 (x6,
25679 : E_CCmode,
25680 : 17) != 0)
25681 : return NULL;
25682 : switch (GET_CODE (x3))
25683 : {
25684 : case SIGN_EXTRACT:
25685 : res = split_15 (x1, insn);
25686 : if (res != NULL_RTX)
25687 : return res;
25688 : break;
25689 :
25690 : case LSHIFTRT:
25691 : res = split_16 (x1, insn);
25692 : if (res != NULL_RTX)
25693 : return res;
25694 : break;
25695 :
25696 : case ASHIFTRT:
25697 : res = split_17 (x1, insn);
25698 : if (res != NULL_RTX)
25699 : return res;
25700 : break;
25701 :
25702 : case ZERO_EXTRACT:
25703 : res = split_18 (x1, insn);
25704 : if (res != NULL_RTX)
25705 : return res;
25706 : break;
25707 :
25708 : default:
25709 : break;
25710 : }
25711 : x4 = XEXP (x2, 0);
25712 : if (GET_CODE (x4) != ZERO_EXTRACT)
25713 : return NULL;
25714 : x5 = XEXP (x4, 1);
25715 : if (x5 != const_int_rtx[MAX_SAVED_CONST_INT + 8])
25716 : return NULL;
25717 : x8 = XEXP (x4, 2);
25718 : if (x8 != const_int_rtx[MAX_SAVED_CONST_INT + 8])
25719 : return NULL;
25720 : x7 = XEXP (x4, 0);
25721 : operands[0] = x7;
25722 : if (!int248_register_operand (operands[0], E_VOIDmode))
25723 : return NULL;
25724 : operands[3] = x3;
25725 : x9 = XEXP (x3, 0);
25726 : switch (GET_CODE (x9))
25727 : {
25728 : case AND:
25729 : switch (pattern1497 (x2))
25730 : {
25731 : case 0:
25732 : if (!(
25733 : #line 13548 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25734 : (GET_MODE (operands[1]) == GET_MODE (operands[2])) &&
25735 : #line 13552 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25736 : ( reload_completed
25737 : && !(rtx_equal_p (operands[0], operands[1])
25738 : || rtx_equal_p (operands[0], operands[2])))))
25739 : return NULL;
25740 : return gen_split_364 (insn, operands);
25741 :
25742 : case 1:
25743 : if (!(
25744 : #line 13548 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25745 : (GET_MODE (operands[1]) == GET_MODE (operands[2])) &&
25746 : #line 13552 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25747 : ( reload_completed
25748 : && !(rtx_equal_p (operands[0], operands[1])
25749 : || rtx_equal_p (operands[0], operands[2])))))
25750 : return NULL;
25751 : return gen_split_367 (insn, operands);
25752 :
25753 : case 2:
25754 : if (!((
25755 : #line 13548 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25756 : (GET_MODE (operands[1]) == GET_MODE (operands[2])) &&
25757 : #line 1165 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25758 : (TARGET_64BIT)) &&
25759 : #line 13552 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25760 : ( reload_completed
25761 : && !(rtx_equal_p (operands[0], operands[1])
25762 : || rtx_equal_p (operands[0], operands[2])))))
25763 : return NULL;
25764 : return gen_split_370 (insn, operands);
25765 :
25766 : default:
25767 : return NULL;
25768 : }
25769 :
25770 : case IOR:
25771 : switch (pattern1497 (x2))
25772 : {
25773 : case 0:
25774 : if (!(
25775 : #line 13548 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25776 : (GET_MODE (operands[1]) == GET_MODE (operands[2])) &&
25777 : #line 13552 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25778 : ( reload_completed
25779 : && !(rtx_equal_p (operands[0], operands[1])
25780 : || rtx_equal_p (operands[0], operands[2])))))
25781 : return NULL;
25782 : return gen_split_365 (insn, operands);
25783 :
25784 : case 1:
25785 : if (!(
25786 : #line 13548 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25787 : (GET_MODE (operands[1]) == GET_MODE (operands[2])) &&
25788 : #line 13552 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25789 : ( reload_completed
25790 : && !(rtx_equal_p (operands[0], operands[1])
25791 : || rtx_equal_p (operands[0], operands[2])))))
25792 : return NULL;
25793 : return gen_split_368 (insn, operands);
25794 :
25795 : case 2:
25796 : if (!((
25797 : #line 13548 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25798 : (GET_MODE (operands[1]) == GET_MODE (operands[2])) &&
25799 : #line 1165 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25800 : (TARGET_64BIT)) &&
25801 : #line 13552 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25802 : ( reload_completed
25803 : && !(rtx_equal_p (operands[0], operands[1])
25804 : || rtx_equal_p (operands[0], operands[2])))))
25805 : return NULL;
25806 : return gen_split_371 (insn, operands);
25807 :
25808 : default:
25809 : return NULL;
25810 : }
25811 :
25812 : case XOR:
25813 : switch (pattern1497 (x2))
25814 : {
25815 : case 0:
25816 : if (!(
25817 : #line 13548 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25818 : (GET_MODE (operands[1]) == GET_MODE (operands[2])) &&
25819 : #line 13552 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25820 : ( reload_completed
25821 : && !(rtx_equal_p (operands[0], operands[1])
25822 : || rtx_equal_p (operands[0], operands[2])))))
25823 : return NULL;
25824 : return gen_split_366 (insn, operands);
25825 :
25826 : case 1:
25827 : if (!(
25828 : #line 13548 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25829 : (GET_MODE (operands[1]) == GET_MODE (operands[2])) &&
25830 : #line 13552 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25831 : ( reload_completed
25832 : && !(rtx_equal_p (operands[0], operands[1])
25833 : || rtx_equal_p (operands[0], operands[2])))))
25834 : return NULL;
25835 : return gen_split_369 (insn, operands);
25836 :
25837 : case 2:
25838 : if (!((
25839 : #line 13548 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25840 : (GET_MODE (operands[1]) == GET_MODE (operands[2])) &&
25841 : #line 1165 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25842 : (TARGET_64BIT)) &&
25843 : #line 13552 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25844 : ( reload_completed
25845 : && !(rtx_equal_p (operands[0], operands[1])
25846 : || rtx_equal_p (operands[0], operands[2])))))
25847 : return NULL;
25848 : return gen_split_372 (insn, operands);
25849 :
25850 : default:
25851 : return NULL;
25852 : }
25853 :
25854 : default:
25855 : return NULL;
25856 : }
25857 :
25858 : case ZERO_EXTEND:
25859 : return split_32 (x1, insn);
25860 :
25861 : case FIX:
25862 : x6 = XVECEXP (x1, 0, 1);
25863 : if (pattern355 (x6) != 0)
25864 : return NULL;
25865 : x4 = XEXP (x2, 0);
25866 : operands[0] = x4;
25867 : x9 = XEXP (x3, 0);
25868 : operands[1] = x9;
25869 : if (!register_operand (operands[1], E_VOIDmode))
25870 : return NULL;
25871 : switch (pattern552 (x3))
25872 : {
25873 : case 0:
25874 : if (!(
25875 : #line 6002 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25876 : (X87_FLOAT_MODE_P (GET_MODE (operands[1]))
25877 : && !TARGET_FISTTP
25878 : && !(SSE_FLOAT_MODE_P (GET_MODE (operands[1]))
25879 : && (TARGET_64BIT || HImode != DImode))
25880 : && ix86_pre_reload_split ()) &&
25881 : #line 6008 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25882 : ( 1)))
25883 : return NULL;
25884 : return gen_split_82 (insn, operands);
25885 :
25886 : case 1:
25887 : if (!(
25888 : #line 6002 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25889 : (X87_FLOAT_MODE_P (GET_MODE (operands[1]))
25890 : && !TARGET_FISTTP
25891 : && !(SSE_FLOAT_MODE_P (GET_MODE (operands[1]))
25892 : && (TARGET_64BIT || SImode != DImode))
25893 : && ix86_pre_reload_split ()) &&
25894 : #line 6008 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25895 : ( 1)))
25896 : return NULL;
25897 : return gen_split_83 (insn, operands);
25898 :
25899 : case 2:
25900 : if (!(
25901 : #line 6002 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25902 : (X87_FLOAT_MODE_P (GET_MODE (operands[1]))
25903 : && !TARGET_FISTTP
25904 : && !(SSE_FLOAT_MODE_P (GET_MODE (operands[1]))
25905 : && (TARGET_64BIT || DImode != DImode))
25906 : && ix86_pre_reload_split ()) &&
25907 : #line 6008 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25908 : ( 1)))
25909 : return NULL;
25910 : return gen_split_84 (insn, operands);
25911 :
25912 : default:
25913 : return NULL;
25914 : }
25915 :
25916 : case MULT:
25917 : if (pattern344 (x1) != 0)
25918 : return NULL;
25919 : x9 = XEXP (x3, 0);
25920 : switch (GET_CODE (x9))
25921 : {
25922 : case REG:
25923 : if (!rtx_equal_p (x9, operands[0]))
25924 : return NULL;
25925 : x10 = XEXP (x3, 1);
25926 : operands[1] = x10;
25927 : switch (GET_MODE (operands[0]))
25928 : {
25929 : case E_SImode:
25930 : if (!general_reg_operand (operands[0], E_SImode)
25931 : || GET_MODE (x3) != E_SImode
25932 : || !const1248_operand (operands[1], E_SImode)
25933 : || !
25934 : #line 6429 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25935 : (reload_completed))
25936 : return NULL;
25937 : return gen_split_100 (insn, operands);
25938 :
25939 : case E_DImode:
25940 : if (!general_reg_operand (operands[0], E_DImode)
25941 : || GET_MODE (x3) != E_DImode
25942 : || !const1248_operand (operands[1], E_DImode)
25943 : || !(
25944 : #line 6429 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25945 : (reload_completed) &&
25946 : #line 1168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25947 : (TARGET_64BIT)))
25948 : return NULL;
25949 : return gen_split_101 (insn, operands);
25950 :
25951 : default:
25952 : return NULL;
25953 : }
25954 :
25955 : case ZERO_EXTEND:
25956 : x10 = XEXP (x3, 1);
25957 : if (GET_CODE (x10) != ZERO_EXTEND)
25958 : return NULL;
25959 : x11 = XEXP (x9, 0);
25960 : operands[1] = x11;
25961 : x12 = XEXP (x10, 0);
25962 : operands[2] = x12;
25963 : switch (GET_MODE (operands[0]))
25964 : {
25965 : case E_DImode:
25966 : if (pattern564 (x3,
25967 : E_SImode,
25968 : E_DImode) != 0
25969 : || !(
25970 : #line 11364 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25971 : (TARGET_BMI2 && reload_completed
25972 : && REGNO (operands[1]) == DX_REG) &&
25973 : #line 1236 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25974 : (!TARGET_64BIT)))
25975 : return NULL;
25976 : return gen_split_244 (insn, operands);
25977 :
25978 : case E_TImode:
25979 : if (pattern564 (x3,
25980 : E_DImode,
25981 : E_TImode) != 0
25982 : || !(
25983 : #line 11364 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25984 : (TARGET_BMI2 && reload_completed
25985 : && REGNO (operands[1]) == DX_REG) &&
25986 : #line 1237 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25987 : (TARGET_64BIT)))
25988 : return NULL;
25989 : return gen_split_245 (insn, operands);
25990 :
25991 : default:
25992 : return NULL;
25993 : }
25994 :
25995 : default:
25996 : return NULL;
25997 : }
25998 :
25999 : case PLUS:
26000 : return split_29 (x1, insn);
26001 :
26002 : case SUBREG:
26003 : return split_28 (x1, insn);
26004 :
26005 : case NE:
26006 : case EQ:
26007 : case GE:
26008 : case GT:
26009 : case LE:
26010 : case LT:
26011 : case LTGT:
26012 : case GEU:
26013 : case GTU:
26014 : case LEU:
26015 : case LTU:
26016 : case UNORDERED:
26017 : case ORDERED:
26018 : case UNEQ:
26019 : case UNGE:
26020 : case UNGT:
26021 : case UNLE:
26022 : case UNLT:
26023 : if (GET_CODE (x3) == EQ)
26024 : {
26025 : x9 = XEXP (x3, 0);
26026 : switch (GET_CODE (x9))
26027 : {
26028 : case PLUS:
26029 : switch (pattern728 (x1,
26030 : PLUS))
26031 : {
26032 : case 0:
26033 : if (((
26034 : #line 7746 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26035 : (ix86_binary_operator_ok (PLUS, DImode, operands, TARGET_APX_NDD)) &&
26036 : #line 1236 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26037 : (!TARGET_64BIT)) &&
26038 : #line 7748 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26039 : ( reload_completed)))
26040 : return gen_split_152 (insn, operands);
26041 : break;
26042 :
26043 : case 1:
26044 : if (((
26045 : #line 7746 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26046 : (ix86_binary_operator_ok (PLUS, TImode, operands, TARGET_APX_NDD)) &&
26047 : #line 1237 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26048 : (TARGET_64BIT)) &&
26049 : #line 7748 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26050 : ( reload_completed)))
26051 : return gen_split_153 (insn, operands);
26052 : break;
26053 :
26054 : case 2:
26055 : if (((
26056 : #line 7792 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26057 : (ix86_binary_operator_ok (PLUS, DImode, operands, TARGET_APX_NDD)
26058 : && CONST_SCALAR_INT_P (operands[2])
26059 : && rtx_equal_p (operands[2], operands[3])) &&
26060 : #line 1236 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26061 : (!TARGET_64BIT)) &&
26062 : #line 7796 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26063 : ( reload_completed)))
26064 : return gen_split_154 (insn, operands);
26065 : break;
26066 :
26067 : case 3:
26068 : if (((
26069 : #line 7792 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26070 : (ix86_binary_operator_ok (PLUS, TImode, operands, TARGET_APX_NDD)
26071 : && CONST_SCALAR_INT_P (operands[2])
26072 : && rtx_equal_p (operands[2], operands[3])) &&
26073 : #line 1237 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26074 : (TARGET_64BIT)) &&
26075 : #line 7796 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26076 : ( reload_completed)))
26077 : return gen_split_155 (insn, operands);
26078 : break;
26079 :
26080 : default:
26081 : break;
26082 : }
26083 : break;
26084 :
26085 : case MINUS:
26086 : switch (pattern728 (x1,
26087 : MINUS))
26088 : {
26089 : case 0:
26090 : if (((
26091 : #line 8504 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26092 : (ix86_binary_operator_ok (MINUS, SImode, operands, TARGET_APX_NDD)) &&
26093 : #line 1236 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26094 : (!TARGET_64BIT)) &&
26095 : #line 8506 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26096 : ( reload_completed)))
26097 : return gen_split_192 (insn, operands);
26098 : break;
26099 :
26100 : case 1:
26101 : if (((
26102 : #line 8504 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26103 : (ix86_binary_operator_ok (MINUS, DImode, operands, TARGET_APX_NDD)) &&
26104 : #line 1237 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26105 : (TARGET_64BIT)) &&
26106 : #line 8506 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26107 : ( reload_completed)))
26108 : return gen_split_193 (insn, operands);
26109 : break;
26110 :
26111 : case 2:
26112 : if (((
26113 : #line 8548 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26114 : (ix86_binary_operator_ok (MINUS, SImode, operands, TARGET_APX_NDD)
26115 : && CONST_SCALAR_INT_P (operands[2])
26116 : && rtx_equal_p (operands[2], operands[3])) &&
26117 : #line 1236 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26118 : (!TARGET_64BIT)) &&
26119 : #line 8552 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26120 : ( reload_completed)))
26121 : return gen_split_194 (insn, operands);
26122 : break;
26123 :
26124 : case 3:
26125 : if (((
26126 : #line 8548 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26127 : (ix86_binary_operator_ok (MINUS, DImode, operands, TARGET_APX_NDD)
26128 : && CONST_SCALAR_INT_P (operands[2])
26129 : && rtx_equal_p (operands[2], operands[3])) &&
26130 : #line 1237 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26131 : (TARGET_64BIT)) &&
26132 : #line 8552 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26133 : ( reload_completed)))
26134 : return gen_split_195 (insn, operands);
26135 : break;
26136 :
26137 : default:
26138 : break;
26139 : }
26140 : break;
26141 :
26142 : case ZERO_EXTRACT:
26143 : switch (pattern697 (x1))
26144 : {
26145 : case 0:
26146 : if ((
26147 : #line 19744 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26148 : (TARGET_USE_BT && ix86_pre_reload_split ()) &&
26149 : #line 19746 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26150 : ( 1)))
26151 : return gen_split_848 (insn, operands);
26152 : break;
26153 :
26154 : case 1:
26155 : if (((
26156 : #line 19744 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26157 : (TARGET_USE_BT && ix86_pre_reload_split ()) &&
26158 : #line 1168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26159 : (TARGET_64BIT)) &&
26160 : #line 19746 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26161 : ( 1)))
26162 : return gen_split_849 (insn, operands);
26163 : break;
26164 :
26165 : default:
26166 : break;
26167 : }
26168 : break;
26169 :
26170 : default:
26171 : break;
26172 : }
26173 : }
26174 : operands[1] = x3;
26175 : switch (pattern371 (x1))
26176 : {
26177 : case 0:
26178 : if (!(
26179 : #line 19857 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26180 : (!TARGET_PARTIAL_REG_STALL
26181 : && TARGET_ZERO_EXTEND_WITH_AND && optimize_function_for_speed_p (cfun)) &&
26182 : #line 19860 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26183 : ( reload_completed)))
26184 : return NULL;
26185 : return gen_split_858 (insn, operands);
26186 :
26187 : case 1:
26188 : if (!(
26189 : #line 19857 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26190 : (!TARGET_PARTIAL_REG_STALL
26191 : && TARGET_ZERO_EXTEND_WITH_AND && optimize_function_for_speed_p (cfun)) &&
26192 : #line 19860 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26193 : ( reload_completed)))
26194 : return NULL;
26195 : return gen_split_859 (insn, operands);
26196 :
26197 : default:
26198 : return NULL;
26199 : }
26200 :
26201 : case MINUS:
26202 : x6 = XVECEXP (x1, 0, 1);
26203 : if (pattern236 (x6,
26204 : E_CCmode,
26205 : 17) != 0)
26206 : return NULL;
26207 : x9 = XEXP (x3, 0);
26208 : switch (GET_CODE (x9))
26209 : {
26210 : case CONST_INT:
26211 : case CONST_WIDE_INT:
26212 : case CONST_POLY_INT:
26213 : case CONST_FIXED:
26214 : case CONST_DOUBLE:
26215 : case CONST_VECTOR:
26216 : case CONST:
26217 : case REG:
26218 : case SUBREG:
26219 : case MEM:
26220 : case LABEL_REF:
26221 : case SYMBOL_REF:
26222 : case HIGH:
26223 : operands[1] = x9;
26224 : res = split_20 (x1, insn);
26225 : if (res != NULL_RTX)
26226 : return res;
26227 : if (GET_CODE (x9) != SUBREG)
26228 : return NULL;
26229 : switch (pattern1056 (x2))
26230 : {
26231 : case 0:
26232 : if (!(
26233 : #line 8275 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26234 : (!TARGET_PARTIAL_REG_STALL || optimize_function_for_size_p (cfun)) &&
26235 : #line 8277 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26236 : ( reload_completed)))
26237 : return NULL;
26238 : return gen_split_183 (insn, operands);
26239 :
26240 : case 1:
26241 : if (!(
26242 : #line 8275 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26243 : (!TARGET_PARTIAL_REG_STALL || optimize_function_for_size_p (cfun)) &&
26244 : #line 8277 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26245 : ( reload_completed)))
26246 : return NULL;
26247 : return gen_split_184 (insn, operands);
26248 :
26249 : case 2:
26250 : if (!((
26251 : #line 8275 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26252 : (!TARGET_PARTIAL_REG_STALL || optimize_function_for_size_p (cfun)) &&
26253 : #line 1165 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26254 : (TARGET_64BIT)) &&
26255 : #line 8277 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26256 : ( reload_completed)))
26257 : return NULL;
26258 : return gen_split_185 (insn, operands);
26259 :
26260 : case 3:
26261 : if (!
26262 : #line 8360 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26263 : ( reload_completed))
26264 : return NULL;
26265 : return gen_split_186 (insn, operands);
26266 :
26267 : case 4:
26268 : if (!
26269 : #line 8360 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26270 : ( reload_completed))
26271 : return NULL;
26272 : return gen_split_187 (insn, operands);
26273 :
26274 : case 5:
26275 : if (!(
26276 : #line 1165 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26277 : (TARGET_64BIT) &&
26278 : #line 8360 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26279 : ( reload_completed)))
26280 : return NULL;
26281 : return gen_split_188 (insn, operands);
26282 :
26283 : default:
26284 : return NULL;
26285 : }
26286 :
26287 : case MINUS:
26288 : x13 = XEXP (x9, 1);
26289 : if (GET_CODE (x13) != EQ)
26290 : return NULL;
26291 : x14 = XEXP (x13, 1);
26292 : if (x14 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
26293 : return NULL;
26294 : x4 = XEXP (x2, 0);
26295 : operands[0] = x4;
26296 : x11 = XEXP (x9, 0);
26297 : operands[1] = x11;
26298 : x15 = XEXP (x13, 0);
26299 : operands[3] = x15;
26300 : if (!int_nonimmediate_operand (operands[3], E_VOIDmode))
26301 : return NULL;
26302 : x10 = XEXP (x3, 1);
26303 : operands[2] = x10;
26304 : switch (GET_MODE (operands[0]))
26305 : {
26306 : case E_QImode:
26307 : if (pattern1577 (x3,
26308 : E_QImode) != 0
26309 : || !(
26310 : #line 10573 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26311 : (ix86_binary_operator_ok (MINUS, QImode, operands, TARGET_APX_NDD)
26312 : && ix86_pre_reload_split ()) &&
26313 : #line 10576 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26314 : ( 1)))
26315 : return NULL;
26316 : return gen_split_224 (insn, operands);
26317 :
26318 : case E_HImode:
26319 : if (pattern1577 (x3,
26320 : E_HImode) != 0
26321 : || !(
26322 : #line 10573 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26323 : (ix86_binary_operator_ok (MINUS, HImode, operands, TARGET_APX_NDD)
26324 : && ix86_pre_reload_split ()) &&
26325 : #line 10576 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26326 : ( 1)))
26327 : return NULL;
26328 : return gen_split_225 (insn, operands);
26329 :
26330 : case E_SImode:
26331 : if (pattern1578 (x3,
26332 : E_SImode) != 0
26333 : || !(
26334 : #line 10573 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26335 : (ix86_binary_operator_ok (MINUS, SImode, operands, TARGET_APX_NDD)
26336 : && ix86_pre_reload_split ()) &&
26337 : #line 10576 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26338 : ( 1)))
26339 : return NULL;
26340 : return gen_split_226 (insn, operands);
26341 :
26342 : case E_DImode:
26343 : if (pattern1578 (x3,
26344 : E_DImode) != 0
26345 : || !((
26346 : #line 10573 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26347 : (ix86_binary_operator_ok (MINUS, DImode, operands, TARGET_APX_NDD)
26348 : && ix86_pre_reload_split ()) &&
26349 : #line 1162 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26350 : (TARGET_64BIT)) &&
26351 : #line 10576 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26352 : ( 1)))
26353 : return NULL;
26354 : return gen_split_227 (insn, operands);
26355 :
26356 : default:
26357 : return NULL;
26358 : }
26359 :
26360 : default:
26361 : return NULL;
26362 : }
26363 :
26364 : case IF_THEN_ELSE:
26365 : x9 = XEXP (x3, 0);
26366 : if (!bt_comparison_operator (x9, E_VOIDmode))
26367 : return NULL;
26368 : x13 = XEXP (x9, 1);
26369 : if (x13 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
26370 : return NULL;
26371 : switch (pattern703 (x1))
26372 : {
26373 : case 0:
26374 : x11 = XEXP (x9, 0);
26375 : operands[2] = x11;
26376 : x10 = XEXP (x3, 1);
26377 : if (GET_CODE (x10) != PLUS)
26378 : return NULL;
26379 : x16 = XEXP (x10, 1);
26380 : if (x16 != const_int_rtx[MAX_SAVED_CONST_INT + -1])
26381 : return NULL;
26382 : x4 = XEXP (x2, 0);
26383 : operands[0] = x4;
26384 : operands[1] = x9;
26385 : switch (pattern1588 (x3))
26386 : {
26387 : case 0:
26388 : if (!(
26389 : #line 8797 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26390 : (TARGET_CMOVE) &&
26391 : #line 8799 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26392 : ( reload_completed)))
26393 : return NULL;
26394 : return gen_split_196 (insn, operands);
26395 :
26396 : case 1:
26397 : if (!(
26398 : #line 8797 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26399 : (TARGET_CMOVE) &&
26400 : #line 8799 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26401 : ( reload_completed)))
26402 : return NULL;
26403 : return gen_split_197 (insn, operands);
26404 :
26405 : case 2:
26406 : if (!((
26407 : #line 8797 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26408 : (TARGET_CMOVE) &&
26409 : #line 1165 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26410 : (TARGET_64BIT)) &&
26411 : #line 8799 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26412 : ( reload_completed)))
26413 : return NULL;
26414 : return gen_split_198 (insn, operands);
26415 :
26416 : default:
26417 : return NULL;
26418 : }
26419 :
26420 : case 1:
26421 : x11 = XEXP (x9, 0);
26422 : x17 = XEXP (x11, 1);
26423 : if (x17 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
26424 : return NULL;
26425 : switch (pattern1346 (x2))
26426 : {
26427 : case 0:
26428 : x18 = XEXP (x11, 2);
26429 : operands[2] = x18;
26430 : switch (pattern1706 (x3))
26431 : {
26432 : case 0:
26433 : if ((
26434 : #line 19549 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26435 : ((TARGET_USE_BT || optimize_function_for_size_p (cfun))
26436 : && (CONST_INT_P (operands[2])
26437 : ? (INTVAL (operands[2]) < GET_MODE_BITSIZE (SImode)
26438 : && INTVAL (operands[2])
26439 : >= (optimize_function_for_size_p (cfun) ? 8 : 32))
26440 : : !memory_operand (operands[1], SImode))
26441 : && ix86_pre_reload_split ()) &&
26442 : #line 19557 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26443 : ( 1)))
26444 : return gen_split_826 (insn, operands);
26445 : break;
26446 :
26447 : case 1:
26448 : if (((
26449 : #line 19549 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26450 : ((TARGET_USE_BT || optimize_function_for_size_p (cfun))
26451 : && (CONST_INT_P (operands[2])
26452 : ? (INTVAL (operands[2]) < GET_MODE_BITSIZE (DImode)
26453 : && INTVAL (operands[2])
26454 : >= (optimize_function_for_size_p (cfun) ? 8 : 32))
26455 : : !memory_operand (operands[1], DImode))
26456 : && ix86_pre_reload_split ()) &&
26457 : #line 1168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26458 : (TARGET_64BIT)) &&
26459 : #line 19557 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26460 : ( 1)))
26461 : return gen_split_827 (insn, operands);
26462 : break;
26463 :
26464 : default:
26465 : break;
26466 : }
26467 : if (GET_CODE (x18) != SUBREG)
26468 : return NULL;
26469 : switch (pattern1708 (x3))
26470 : {
26471 : case 0:
26472 : if (!(
26473 : #line 19625 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26474 : ((TARGET_USE_BT || optimize_function_for_size_p (cfun))
26475 : && (INTVAL (operands[3]) & (GET_MODE_BITSIZE (SImode)-1))
26476 : == GET_MODE_BITSIZE (SImode)-1
26477 : && ix86_pre_reload_split ()) &&
26478 : #line 19630 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26479 : ( 1)))
26480 : return NULL;
26481 : return gen_split_830 (insn, operands);
26482 :
26483 : case 1:
26484 : if (!(
26485 : #line 19625 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26486 : ((TARGET_USE_BT || optimize_function_for_size_p (cfun))
26487 : && (INTVAL (operands[3]) & (GET_MODE_BITSIZE (SImode)-1))
26488 : == GET_MODE_BITSIZE (SImode)-1
26489 : && ix86_pre_reload_split ()) &&
26490 : #line 19630 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26491 : ( 1)))
26492 : return NULL;
26493 : return gen_split_832 (insn, operands);
26494 :
26495 : case 2:
26496 : if (!((
26497 : #line 19625 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26498 : ((TARGET_USE_BT || optimize_function_for_size_p (cfun))
26499 : && (INTVAL (operands[3]) & (GET_MODE_BITSIZE (SImode)-1))
26500 : == GET_MODE_BITSIZE (SImode)-1
26501 : && ix86_pre_reload_split ()) &&
26502 : #line 1165 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26503 : (TARGET_64BIT)) &&
26504 : #line 19630 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26505 : ( 1)))
26506 : return NULL;
26507 : return gen_split_834 (insn, operands);
26508 :
26509 : case 3:
26510 : if (!((
26511 : #line 19625 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26512 : ((TARGET_USE_BT || optimize_function_for_size_p (cfun))
26513 : && (INTVAL (operands[3]) & (GET_MODE_BITSIZE (DImode)-1))
26514 : == GET_MODE_BITSIZE (DImode)-1
26515 : && ix86_pre_reload_split ()) &&
26516 : #line 1168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26517 : (TARGET_64BIT)) &&
26518 : #line 19630 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26519 : ( 1)))
26520 : return NULL;
26521 : return gen_split_831 (insn, operands);
26522 :
26523 : case 4:
26524 : if (!((
26525 : #line 19625 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26526 : ((TARGET_USE_BT || optimize_function_for_size_p (cfun))
26527 : && (INTVAL (operands[3]) & (GET_MODE_BITSIZE (DImode)-1))
26528 : == GET_MODE_BITSIZE (DImode)-1
26529 : && ix86_pre_reload_split ()) &&
26530 : #line 1168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26531 : (TARGET_64BIT)) &&
26532 : #line 19630 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26533 : ( 1)))
26534 : return NULL;
26535 : return gen_split_833 (insn, operands);
26536 :
26537 : case 5:
26538 : if (!((
26539 : #line 19625 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26540 : ((TARGET_USE_BT || optimize_function_for_size_p (cfun))
26541 : && (INTVAL (operands[3]) & (GET_MODE_BITSIZE (DImode)-1))
26542 : == GET_MODE_BITSIZE (DImode)-1
26543 : && ix86_pre_reload_split ()) &&
26544 : #line 1168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26545 : (TARGET_64BIT)) &&
26546 : #line 19630 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26547 : ( 1)))
26548 : return NULL;
26549 : return gen_split_835 (insn, operands);
26550 :
26551 : default:
26552 : return NULL;
26553 : }
26554 :
26555 : case 1:
26556 : if (!(
26557 : #line 19588 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26558 : ((TARGET_USE_BT || optimize_function_for_size_p (cfun))
26559 : && (INTVAL (operands[3]) & (GET_MODE_BITSIZE (SImode)-1))
26560 : == GET_MODE_BITSIZE (SImode)-1
26561 : && ix86_pre_reload_split ()) &&
26562 : #line 19593 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26563 : ( 1)))
26564 : return NULL;
26565 : return gen_split_828 (insn, operands);
26566 :
26567 : case 2:
26568 : if (!((
26569 : #line 19588 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26570 : ((TARGET_USE_BT || optimize_function_for_size_p (cfun))
26571 : && (INTVAL (operands[3]) & (GET_MODE_BITSIZE (DImode)-1))
26572 : == GET_MODE_BITSIZE (DImode)-1
26573 : && ix86_pre_reload_split ()) &&
26574 : #line 1168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26575 : (TARGET_64BIT)) &&
26576 : #line 19593 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26577 : ( 1)))
26578 : return NULL;
26579 : return gen_split_829 (insn, operands);
26580 :
26581 : default:
26582 : return NULL;
26583 : }
26584 :
26585 : default:
26586 : return NULL;
26587 : }
26588 :
26589 : case COMPARE:
26590 : return split_27 (x1, insn);
26591 :
26592 : case AND:
26593 : return split_25 (x1, insn);
26594 :
26595 : case IOR:
26596 : return split_26 (x1, insn);
26597 :
26598 : case XOR:
26599 : return split_24 (x1, insn);
26600 :
26601 : case NOT:
26602 : x9 = XEXP (x3, 0);
26603 : if (GET_CODE (x9) != XOR
26604 : || pattern345 (x1) != 0)
26605 : return NULL;
26606 : switch (GET_MODE (operands[0]))
26607 : {
26608 : case E_HImode:
26609 : if (!nonimmediate_operand (operands[0], E_HImode)
26610 : || pattern217 (x3,
26611 : E_HImode) != 0
26612 : || !(
26613 : #line 13927 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26614 : (ix86_binary_operator_ok (XOR, HImode, operands, TARGET_APX_NDD)) &&
26615 : #line 13929 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26616 : ( reload_completed)))
26617 : return NULL;
26618 : return gen_split_397 (insn, operands);
26619 :
26620 : case E_SImode:
26621 : if (!nonimmediate_operand (operands[0], E_SImode)
26622 : || pattern218 (x3,
26623 : E_SImode) != 0
26624 : || !(
26625 : #line 13927 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26626 : (ix86_binary_operator_ok (XOR, SImode, operands, TARGET_APX_NDD)) &&
26627 : #line 13929 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26628 : ( reload_completed)))
26629 : return NULL;
26630 : return gen_split_398 (insn, operands);
26631 :
26632 : case E_DImode:
26633 : if (!nonimmediate_operand (operands[0], E_DImode)
26634 : || pattern218 (x3,
26635 : E_DImode) != 0
26636 : || !((
26637 : #line 13927 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26638 : (ix86_binary_operator_ok (XOR, DImode, operands, TARGET_APX_NDD)) &&
26639 : #line 1165 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26640 : (TARGET_64BIT)) &&
26641 : #line 13929 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26642 : ( reload_completed)))
26643 : return NULL;
26644 : return gen_split_399 (insn, operands);
26645 :
26646 : case E_QImode:
26647 : if (!nonimmediate_operand (operands[0], E_QImode)
26648 : || pattern217 (x3,
26649 : E_QImode) != 0
26650 : || !(
26651 : #line 14127 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26652 : (ix86_binary_operator_ok (XOR, QImode, operands, TARGET_APX_NDD)) &&
26653 : #line 14129 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26654 : ( reload_completed)))
26655 : return NULL;
26656 : return gen_split_405 (insn, operands);
26657 :
26658 : default:
26659 : return NULL;
26660 : }
26661 :
26662 : case NEG:
26663 : return split_31 (x1, insn);
26664 :
26665 : case ABS:
26666 : return split_33 (x1, insn);
26667 :
26668 : case ASHIFT:
26669 : return split_30 (x1, insn);
26670 :
26671 : case ROTATE:
26672 : return split_35 (x1, insn);
26673 :
26674 : case ROTATERT:
26675 : return split_34 (x1, insn);
26676 :
26677 : case CTZ:
26678 : switch (pattern409 (x1))
26679 : {
26680 : case 0:
26681 : if (!
26682 : #line 21434 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26683 : ((TARGET_BMI || TARGET_CPU_P (GENERIC))
26684 : && (TARGET_AVOID_FALSE_DEP_FOR_BMI || TARGET_AVOID_FALSE_DEP_FOR_TZCNT)
26685 : && epilogue_completed
26686 : && optimize_function_for_speed_p (cfun)
26687 : && !reg_mentioned_p (operands[0], operands[1])))
26688 : return NULL;
26689 : return gen_split_879 (insn, operands);
26690 :
26691 : case 1:
26692 : if (!(
26693 : #line 21434 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26694 : ((TARGET_BMI || TARGET_CPU_P (GENERIC))
26695 : && (TARGET_AVOID_FALSE_DEP_FOR_BMI || TARGET_AVOID_FALSE_DEP_FOR_TZCNT)
26696 : && epilogue_completed
26697 : && optimize_function_for_speed_p (cfun)
26698 : && !reg_mentioned_p (operands[0], operands[1])) &&
26699 : #line 1168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26700 : (TARGET_64BIT)))
26701 : return NULL;
26702 : return gen_split_880 (insn, operands);
26703 :
26704 : default:
26705 : return NULL;
26706 : }
26707 :
26708 : case SIGN_EXTEND:
26709 : if (GET_MODE (x3) != E_DImode)
26710 : return NULL;
26711 : x6 = XVECEXP (x1, 0, 1);
26712 : if (pattern355 (x6) != 0)
26713 : return NULL;
26714 : x4 = XEXP (x2, 0);
26715 : operands[0] = x4;
26716 : if (!register_operand (operands[0], E_DImode))
26717 : return NULL;
26718 : x9 = XEXP (x3, 0);
26719 : if (GET_MODE (x9) != E_SImode)
26720 : return NULL;
26721 : switch (GET_CODE (x9))
26722 : {
26723 : case CTZ:
26724 : x11 = XEXP (x9, 0);
26725 : operands[1] = x11;
26726 : if (!nonimmediate_operand (operands[1], E_SImode)
26727 : || !
26728 : #line 21542 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26729 : ((TARGET_BMI || TARGET_CPU_P (GENERIC))
26730 : && (TARGET_AVOID_FALSE_DEP_FOR_BMI || TARGET_AVOID_FALSE_DEP_FOR_TZCNT)
26731 : && epilogue_completed
26732 : && optimize_function_for_speed_p (cfun)
26733 : && !reg_mentioned_p (operands[0], operands[1])))
26734 : return NULL;
26735 : return gen_split_882 (insn, operands);
26736 :
26737 : case XOR:
26738 : x11 = XEXP (x9, 0);
26739 : if (GET_CODE (x11) != MINUS
26740 : || pattern1166 (x9) != 0)
26741 : return NULL;
26742 : x17 = XEXP (x11, 1);
26743 : x19 = XEXP (x17, 0);
26744 : operands[1] = x19;
26745 : if (!nonimmediate_operand (operands[1], E_SImode)
26746 : || !(
26747 : #line 21705 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26748 : (!TARGET_LZCNT && TARGET_64BIT && ix86_pre_reload_split ()) &&
26749 : #line 21707 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26750 : ( 1)))
26751 : return NULL;
26752 : return gen_split_886 (insn, operands);
26753 :
26754 : default:
26755 : return NULL;
26756 : }
26757 :
26758 : case CLZ:
26759 : switch (pattern409 (x1))
26760 : {
26761 : case 0:
26762 : if (!(
26763 : #line 21877 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26764 : (TARGET_LZCNT) &&
26765 : #line 21879 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26766 : ( TARGET_AVOID_FALSE_DEP_FOR_BMI && epilogue_completed
26767 : && optimize_function_for_speed_p (cfun)
26768 : && !reg_mentioned_p (operands[0], operands[1]))))
26769 : return NULL;
26770 : return gen_split_896 (insn, operands);
26771 :
26772 : case 1:
26773 : if (!((
26774 : #line 21877 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26775 : (TARGET_LZCNT) &&
26776 : #line 1168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26777 : (TARGET_64BIT)) &&
26778 : #line 21879 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26779 : ( TARGET_AVOID_FALSE_DEP_FOR_BMI && epilogue_completed
26780 : && optimize_function_for_speed_p (cfun)
26781 : && !reg_mentioned_p (operands[0], operands[1]))))
26782 : return NULL;
26783 : return gen_split_897 (insn, operands);
26784 :
26785 : default:
26786 : return NULL;
26787 : }
26788 :
26789 : case UNSPEC:
26790 : if (XVECLEN (x3, 0) != 1)
26791 : return NULL;
26792 : x6 = XVECEXP (x1, 0, 1);
26793 : if (pattern236 (x6,
26794 : E_CCmode,
26795 : 17) != 0)
26796 : return NULL;
26797 : x4 = XEXP (x2, 0);
26798 : operands[0] = x4;
26799 : x20 = XVECEXP (x3, 0, 0);
26800 : operands[1] = x20;
26801 : switch (XINT (x3, 1))
26802 : {
26803 : case 98:
26804 : switch (pattern1348 (x3))
26805 : {
26806 : case 0:
26807 : if (!(
26808 : #line 22001 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26809 : (TARGET_BMI) &&
26810 : #line 22042 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26811 : ( TARGET_AVOID_FALSE_DEP_FOR_BMI && epilogue_completed
26812 : && optimize_function_for_speed_p (cfun)
26813 : && !reg_mentioned_p (operands[0], operands[1]))))
26814 : return NULL;
26815 : return gen_split_904 (insn, operands);
26816 :
26817 : case 1:
26818 : if (!((((
26819 : #line 1168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26820 : (TARGET_64BIT) &&
26821 : #line 22001 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26822 : (TARGET_BMI)) &&
26823 : #line 1168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26824 : (TARGET_64BIT)) &&
26825 : #line 22001 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26826 : (TARGET_BMI)) &&
26827 : #line 22042 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26828 : ( TARGET_AVOID_FALSE_DEP_FOR_BMI && epilogue_completed
26829 : && optimize_function_for_speed_p (cfun)
26830 : && !reg_mentioned_p (operands[0], operands[1]))))
26831 : return NULL;
26832 : return gen_split_906 (insn, operands);
26833 :
26834 : default:
26835 : return NULL;
26836 : }
26837 :
26838 : case 97:
26839 : switch (pattern1348 (x3))
26840 : {
26841 : case 0:
26842 : if (!(
26843 : #line 22002 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26844 : (TARGET_LZCNT) &&
26845 : #line 22042 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26846 : ( TARGET_AVOID_FALSE_DEP_FOR_BMI && epilogue_completed
26847 : && optimize_function_for_speed_p (cfun)
26848 : && !reg_mentioned_p (operands[0], operands[1]))))
26849 : return NULL;
26850 : return gen_split_905 (insn, operands);
26851 :
26852 : case 1:
26853 : if (!((((
26854 : #line 1168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26855 : (TARGET_64BIT) &&
26856 : #line 22002 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26857 : (TARGET_LZCNT)) &&
26858 : #line 1168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26859 : (TARGET_64BIT)) &&
26860 : #line 22002 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26861 : (TARGET_LZCNT)) &&
26862 : #line 22042 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26863 : ( TARGET_AVOID_FALSE_DEP_FOR_BMI && epilogue_completed
26864 : && optimize_function_for_speed_p (cfun)
26865 : && !reg_mentioned_p (operands[0], operands[1]))))
26866 : return NULL;
26867 : return gen_split_907 (insn, operands);
26868 :
26869 : default:
26870 : return NULL;
26871 : }
26872 :
26873 : default:
26874 : return NULL;
26875 : }
26876 :
26877 : case POPCOUNT:
26878 : x6 = XVECEXP (x1, 0, 1);
26879 : if (pattern355 (x6) != 0)
26880 : return NULL;
26881 : x4 = XEXP (x2, 0);
26882 : operands[0] = x4;
26883 : x9 = XEXP (x3, 0);
26884 : switch (GET_CODE (x9))
26885 : {
26886 : case REG:
26887 : case SUBREG:
26888 : case MEM:
26889 : operands[1] = x9;
26890 : switch (pattern408 (x3))
26891 : {
26892 : case 0:
26893 : if (!(
26894 : #line 22686 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26895 : (TARGET_POPCNT) &&
26896 : #line 22694 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26897 : ( TARGET_AVOID_FALSE_DEP_FOR_BMI && epilogue_completed
26898 : && optimize_function_for_speed_p (cfun)
26899 : && !reg_mentioned_p (operands[0], operands[1]))))
26900 : return NULL;
26901 : return gen_split_920 (insn, operands);
26902 :
26903 : case 1:
26904 : if (!((
26905 : #line 22686 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26906 : (TARGET_POPCNT) &&
26907 : #line 1168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26908 : (TARGET_64BIT)) &&
26909 : #line 22694 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26910 : ( TARGET_AVOID_FALSE_DEP_FOR_BMI && epilogue_completed
26911 : && optimize_function_for_speed_p (cfun)
26912 : && !reg_mentioned_p (operands[0], operands[1]))))
26913 : return NULL;
26914 : return gen_split_921 (insn, operands);
26915 :
26916 : default:
26917 : return NULL;
26918 : }
26919 :
26920 : case ZERO_EXTEND:
26921 : if (pattern1185 (x3,
26922 : E_HImode,
26923 : E_SImode) != 0
26924 : || !(
26925 : #line 22856 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26926 : (TARGET_POPCNT
26927 : && ix86_pre_reload_split ()) &&
26928 : #line 22859 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26929 : ( 1)))
26930 : return NULL;
26931 : return gen_split_924 (insn, operands);
26932 :
26933 : default:
26934 : return NULL;
26935 : }
26936 :
26937 : default:
26938 : return NULL;
26939 : }
26940 :
26941 : case SIMPLE_RETURN:
26942 : x6 = XVECEXP (x1, 0, 1);
26943 : if (GET_CODE (x6) != USE)
26944 : return NULL;
26945 : x21 = XEXP (x6, 0);
26946 : operands[0] = x21;
26947 : if (!const_int_operand (operands[0], E_SImode)
26948 : || !(
26949 : #line 21028 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26950 : (reload_completed) &&
26951 : #line 21030 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26952 : ( cfun->machine->function_return_type != indirect_branch_keep)))
26953 : return NULL;
26954 : return gen_split_874 (insn, operands);
26955 :
26956 : default:
26957 : return NULL;
26958 : }
26959 : }
26960 :
26961 : rtx_insn *
26962 : split_66 (rtx x1 ATTRIBUTE_UNUSED, rtx_insn *insn ATTRIBUTE_UNUSED)
26963 : {
26964 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
26965 : rtx x2, x3, x4, x5, x6, x7, x8;
26966 : rtx_insn *res ATTRIBUTE_UNUSED;
26967 : x2 = XEXP (x1, 1);
26968 : x3 = XEXP (x2, 0);
26969 : x4 = XEXP (x3, 0);
26970 : switch (GET_CODE (x4))
26971 : {
26972 : case REG:
26973 : case SUBREG:
26974 : case MEM:
26975 : case NOT:
26976 : switch (pattern535 (x2))
26977 : {
26978 : case 0:
26979 : if (!((
26980 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26981 : ((64 == 64 || TARGET_AVX512VL
26982 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
26983 : && ix86_pre_reload_split ()
26984 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
26985 : STRIP_UNARY (operands[4]))
26986 : || rtx_equal_p (STRIP_UNARY (operands[2]),
26987 : STRIP_UNARY (operands[4]))
26988 : || rtx_equal_p (STRIP_UNARY (operands[1]),
26989 : STRIP_UNARY (operands[3]))
26990 : || rtx_equal_p (STRIP_UNARY (operands[2]),
26991 : STRIP_UNARY (operands[3])))) &&
26992 : #line 345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26993 : (TARGET_AVX512F)) &&
26994 : #line 14114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26995 : ( 1)))
26996 : return NULL;
26997 : return gen_split_1743 (insn, operands);
26998 :
26999 : case 1:
27000 : if (!((
27001 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27002 : ((32 == 64 || TARGET_AVX512VL
27003 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
27004 : && ix86_pre_reload_split ()
27005 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
27006 : STRIP_UNARY (operands[4]))
27007 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27008 : STRIP_UNARY (operands[4]))
27009 : || rtx_equal_p (STRIP_UNARY (operands[1]),
27010 : STRIP_UNARY (operands[3]))
27011 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27012 : STRIP_UNARY (operands[3])))) &&
27013 : #line 345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27014 : (TARGET_AVX)) &&
27015 : #line 14114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27016 : ( 1)))
27017 : return NULL;
27018 : return gen_split_1770 (insn, operands);
27019 :
27020 : case 2:
27021 : if (!(
27022 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27023 : ((16 == 64 || TARGET_AVX512VL
27024 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
27025 : && ix86_pre_reload_split ()
27026 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
27027 : STRIP_UNARY (operands[4]))
27028 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27029 : STRIP_UNARY (operands[4]))
27030 : || rtx_equal_p (STRIP_UNARY (operands[1]),
27031 : STRIP_UNARY (operands[3]))
27032 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27033 : STRIP_UNARY (operands[3])))) &&
27034 : #line 14114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27035 : ( 1)))
27036 : return NULL;
27037 : return gen_split_1797 (insn, operands);
27038 :
27039 : case 3:
27040 : if (!((
27041 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27042 : ((64 == 64 || TARGET_AVX512VL
27043 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
27044 : && ix86_pre_reload_split ()
27045 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
27046 : STRIP_UNARY (operands[4]))
27047 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27048 : STRIP_UNARY (operands[4]))
27049 : || rtx_equal_p (STRIP_UNARY (operands[1]),
27050 : STRIP_UNARY (operands[3]))
27051 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27052 : STRIP_UNARY (operands[3])))) &&
27053 : #line 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27054 : (TARGET_AVX512F)) &&
27055 : #line 14114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27056 : ( 1)))
27057 : return NULL;
27058 : return gen_split_1824 (insn, operands);
27059 :
27060 : case 4:
27061 : if (!((
27062 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27063 : ((32 == 64 || TARGET_AVX512VL
27064 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
27065 : && ix86_pre_reload_split ()
27066 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
27067 : STRIP_UNARY (operands[4]))
27068 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27069 : STRIP_UNARY (operands[4]))
27070 : || rtx_equal_p (STRIP_UNARY (operands[1]),
27071 : STRIP_UNARY (operands[3]))
27072 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27073 : STRIP_UNARY (operands[3])))) &&
27074 : #line 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27075 : (TARGET_AVX)) &&
27076 : #line 14114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27077 : ( 1)))
27078 : return NULL;
27079 : return gen_split_1851 (insn, operands);
27080 :
27081 : case 5:
27082 : if (!(
27083 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27084 : ((16 == 64 || TARGET_AVX512VL
27085 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
27086 : && ix86_pre_reload_split ()
27087 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
27088 : STRIP_UNARY (operands[4]))
27089 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27090 : STRIP_UNARY (operands[4]))
27091 : || rtx_equal_p (STRIP_UNARY (operands[1]),
27092 : STRIP_UNARY (operands[3]))
27093 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27094 : STRIP_UNARY (operands[3])))) &&
27095 : #line 14114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27096 : ( 1)))
27097 : return NULL;
27098 : return gen_split_1878 (insn, operands);
27099 :
27100 : case 6:
27101 : if (!((
27102 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27103 : ((64 == 64 || TARGET_AVX512VL
27104 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
27105 : && ix86_pre_reload_split ()
27106 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
27107 : STRIP_UNARY (operands[4]))
27108 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27109 : STRIP_UNARY (operands[4]))
27110 : || rtx_equal_p (STRIP_UNARY (operands[1]),
27111 : STRIP_UNARY (operands[3]))
27112 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27113 : STRIP_UNARY (operands[3])))) &&
27114 : #line 347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27115 : (TARGET_AVX512F)) &&
27116 : #line 14114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27117 : ( 1)))
27118 : return NULL;
27119 : return gen_split_1905 (insn, operands);
27120 :
27121 : case 7:
27122 : if (!((
27123 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27124 : ((32 == 64 || TARGET_AVX512VL
27125 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
27126 : && ix86_pre_reload_split ()
27127 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
27128 : STRIP_UNARY (operands[4]))
27129 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27130 : STRIP_UNARY (operands[4]))
27131 : || rtx_equal_p (STRIP_UNARY (operands[1]),
27132 : STRIP_UNARY (operands[3]))
27133 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27134 : STRIP_UNARY (operands[3])))) &&
27135 : #line 347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27136 : (TARGET_AVX)) &&
27137 : #line 14114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27138 : ( 1)))
27139 : return NULL;
27140 : return gen_split_1932 (insn, operands);
27141 :
27142 : case 8:
27143 : if (!(
27144 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27145 : ((16 == 64 || TARGET_AVX512VL
27146 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
27147 : && ix86_pre_reload_split ()
27148 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
27149 : STRIP_UNARY (operands[4]))
27150 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27151 : STRIP_UNARY (operands[4]))
27152 : || rtx_equal_p (STRIP_UNARY (operands[1]),
27153 : STRIP_UNARY (operands[3]))
27154 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27155 : STRIP_UNARY (operands[3])))) &&
27156 : #line 14114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27157 : ( 1)))
27158 : return NULL;
27159 : return gen_split_1959 (insn, operands);
27160 :
27161 : case 9:
27162 : if (!((
27163 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27164 : ((64 == 64 || TARGET_AVX512VL
27165 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
27166 : && ix86_pre_reload_split ()
27167 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
27168 : STRIP_UNARY (operands[4]))
27169 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27170 : STRIP_UNARY (operands[4]))
27171 : || rtx_equal_p (STRIP_UNARY (operands[1]),
27172 : STRIP_UNARY (operands[3]))
27173 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27174 : STRIP_UNARY (operands[3])))) &&
27175 : #line 348 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27176 : (TARGET_AVX512F)) &&
27177 : #line 14114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27178 : ( 1)))
27179 : return NULL;
27180 : return gen_split_1986 (insn, operands);
27181 :
27182 : case 10:
27183 : if (!((
27184 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27185 : ((32 == 64 || TARGET_AVX512VL
27186 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
27187 : && ix86_pre_reload_split ()
27188 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
27189 : STRIP_UNARY (operands[4]))
27190 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27191 : STRIP_UNARY (operands[4]))
27192 : || rtx_equal_p (STRIP_UNARY (operands[1]),
27193 : STRIP_UNARY (operands[3]))
27194 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27195 : STRIP_UNARY (operands[3])))) &&
27196 : #line 348 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27197 : (TARGET_AVX)) &&
27198 : #line 14114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27199 : ( 1)))
27200 : return NULL;
27201 : return gen_split_2013 (insn, operands);
27202 :
27203 : case 11:
27204 : if (!(
27205 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27206 : ((16 == 64 || TARGET_AVX512VL
27207 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
27208 : && ix86_pre_reload_split ()
27209 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
27210 : STRIP_UNARY (operands[4]))
27211 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27212 : STRIP_UNARY (operands[4]))
27213 : || rtx_equal_p (STRIP_UNARY (operands[1]),
27214 : STRIP_UNARY (operands[3]))
27215 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27216 : STRIP_UNARY (operands[3])))) &&
27217 : #line 14114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27218 : ( 1)))
27219 : return NULL;
27220 : return gen_split_2040 (insn, operands);
27221 :
27222 : case 12:
27223 : if (!((
27224 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27225 : ((64 == 64 || TARGET_AVX512VL
27226 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
27227 : && ix86_pre_reload_split ()
27228 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
27229 : STRIP_UNARY (operands[4]))
27230 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27231 : STRIP_UNARY (operands[4]))
27232 : || rtx_equal_p (STRIP_UNARY (operands[1]),
27233 : STRIP_UNARY (operands[3]))
27234 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27235 : STRIP_UNARY (operands[3])))) &&
27236 : #line 345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27237 : (TARGET_AVX512F)) &&
27238 : #line 14114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27239 : ( 1)))
27240 : return NULL;
27241 : return gen_split_1746 (insn, operands);
27242 :
27243 : case 13:
27244 : if (!((
27245 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27246 : ((32 == 64 || TARGET_AVX512VL
27247 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
27248 : && ix86_pre_reload_split ()
27249 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
27250 : STRIP_UNARY (operands[4]))
27251 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27252 : STRIP_UNARY (operands[4]))
27253 : || rtx_equal_p (STRIP_UNARY (operands[1]),
27254 : STRIP_UNARY (operands[3]))
27255 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27256 : STRIP_UNARY (operands[3])))) &&
27257 : #line 345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27258 : (TARGET_AVX)) &&
27259 : #line 14114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27260 : ( 1)))
27261 : return NULL;
27262 : return gen_split_1773 (insn, operands);
27263 :
27264 : case 14:
27265 : if (!(
27266 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27267 : ((16 == 64 || TARGET_AVX512VL
27268 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
27269 : && ix86_pre_reload_split ()
27270 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
27271 : STRIP_UNARY (operands[4]))
27272 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27273 : STRIP_UNARY (operands[4]))
27274 : || rtx_equal_p (STRIP_UNARY (operands[1]),
27275 : STRIP_UNARY (operands[3]))
27276 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27277 : STRIP_UNARY (operands[3])))) &&
27278 : #line 14114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27279 : ( 1)))
27280 : return NULL;
27281 : return gen_split_1800 (insn, operands);
27282 :
27283 : case 15:
27284 : if (!((
27285 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27286 : ((64 == 64 || TARGET_AVX512VL
27287 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
27288 : && ix86_pre_reload_split ()
27289 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
27290 : STRIP_UNARY (operands[4]))
27291 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27292 : STRIP_UNARY (operands[4]))
27293 : || rtx_equal_p (STRIP_UNARY (operands[1]),
27294 : STRIP_UNARY (operands[3]))
27295 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27296 : STRIP_UNARY (operands[3])))) &&
27297 : #line 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27298 : (TARGET_AVX512F)) &&
27299 : #line 14114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27300 : ( 1)))
27301 : return NULL;
27302 : return gen_split_1827 (insn, operands);
27303 :
27304 : case 16:
27305 : if (!((
27306 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27307 : ((32 == 64 || TARGET_AVX512VL
27308 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
27309 : && ix86_pre_reload_split ()
27310 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
27311 : STRIP_UNARY (operands[4]))
27312 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27313 : STRIP_UNARY (operands[4]))
27314 : || rtx_equal_p (STRIP_UNARY (operands[1]),
27315 : STRIP_UNARY (operands[3]))
27316 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27317 : STRIP_UNARY (operands[3])))) &&
27318 : #line 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27319 : (TARGET_AVX)) &&
27320 : #line 14114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27321 : ( 1)))
27322 : return NULL;
27323 : return gen_split_1854 (insn, operands);
27324 :
27325 : case 17:
27326 : if (!(
27327 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27328 : ((16 == 64 || TARGET_AVX512VL
27329 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
27330 : && ix86_pre_reload_split ()
27331 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
27332 : STRIP_UNARY (operands[4]))
27333 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27334 : STRIP_UNARY (operands[4]))
27335 : || rtx_equal_p (STRIP_UNARY (operands[1]),
27336 : STRIP_UNARY (operands[3]))
27337 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27338 : STRIP_UNARY (operands[3])))) &&
27339 : #line 14114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27340 : ( 1)))
27341 : return NULL;
27342 : return gen_split_1881 (insn, operands);
27343 :
27344 : case 18:
27345 : if (!((
27346 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27347 : ((64 == 64 || TARGET_AVX512VL
27348 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
27349 : && ix86_pre_reload_split ()
27350 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
27351 : STRIP_UNARY (operands[4]))
27352 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27353 : STRIP_UNARY (operands[4]))
27354 : || rtx_equal_p (STRIP_UNARY (operands[1]),
27355 : STRIP_UNARY (operands[3]))
27356 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27357 : STRIP_UNARY (operands[3])))) &&
27358 : #line 347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27359 : (TARGET_AVX512F)) &&
27360 : #line 14114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27361 : ( 1)))
27362 : return NULL;
27363 : return gen_split_1908 (insn, operands);
27364 :
27365 : case 19:
27366 : if (!((
27367 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27368 : ((32 == 64 || TARGET_AVX512VL
27369 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
27370 : && ix86_pre_reload_split ()
27371 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
27372 : STRIP_UNARY (operands[4]))
27373 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27374 : STRIP_UNARY (operands[4]))
27375 : || rtx_equal_p (STRIP_UNARY (operands[1]),
27376 : STRIP_UNARY (operands[3]))
27377 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27378 : STRIP_UNARY (operands[3])))) &&
27379 : #line 347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27380 : (TARGET_AVX)) &&
27381 : #line 14114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27382 : ( 1)))
27383 : return NULL;
27384 : return gen_split_1935 (insn, operands);
27385 :
27386 : case 20:
27387 : if (!(
27388 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27389 : ((16 == 64 || TARGET_AVX512VL
27390 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
27391 : && ix86_pre_reload_split ()
27392 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
27393 : STRIP_UNARY (operands[4]))
27394 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27395 : STRIP_UNARY (operands[4]))
27396 : || rtx_equal_p (STRIP_UNARY (operands[1]),
27397 : STRIP_UNARY (operands[3]))
27398 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27399 : STRIP_UNARY (operands[3])))) &&
27400 : #line 14114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27401 : ( 1)))
27402 : return NULL;
27403 : return gen_split_1962 (insn, operands);
27404 :
27405 : case 21:
27406 : if (!((
27407 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27408 : ((64 == 64 || TARGET_AVX512VL
27409 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
27410 : && ix86_pre_reload_split ()
27411 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
27412 : STRIP_UNARY (operands[4]))
27413 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27414 : STRIP_UNARY (operands[4]))
27415 : || rtx_equal_p (STRIP_UNARY (operands[1]),
27416 : STRIP_UNARY (operands[3]))
27417 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27418 : STRIP_UNARY (operands[3])))) &&
27419 : #line 348 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27420 : (TARGET_AVX512F)) &&
27421 : #line 14114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27422 : ( 1)))
27423 : return NULL;
27424 : return gen_split_1989 (insn, operands);
27425 :
27426 : case 22:
27427 : if (!((
27428 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27429 : ((32 == 64 || TARGET_AVX512VL
27430 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
27431 : && ix86_pre_reload_split ()
27432 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
27433 : STRIP_UNARY (operands[4]))
27434 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27435 : STRIP_UNARY (operands[4]))
27436 : || rtx_equal_p (STRIP_UNARY (operands[1]),
27437 : STRIP_UNARY (operands[3]))
27438 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27439 : STRIP_UNARY (operands[3])))) &&
27440 : #line 348 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27441 : (TARGET_AVX)) &&
27442 : #line 14114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27443 : ( 1)))
27444 : return NULL;
27445 : return gen_split_2016 (insn, operands);
27446 :
27447 : case 23:
27448 : if (!(
27449 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27450 : ((16 == 64 || TARGET_AVX512VL
27451 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
27452 : && ix86_pre_reload_split ()
27453 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
27454 : STRIP_UNARY (operands[4]))
27455 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27456 : STRIP_UNARY (operands[4]))
27457 : || rtx_equal_p (STRIP_UNARY (operands[1]),
27458 : STRIP_UNARY (operands[3]))
27459 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27460 : STRIP_UNARY (operands[3])))) &&
27461 : #line 14114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27462 : ( 1)))
27463 : return NULL;
27464 : return gen_split_2043 (insn, operands);
27465 :
27466 : case 24:
27467 : if (!((
27468 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27469 : ((64 == 64 || TARGET_AVX512VL
27470 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
27471 : && ix86_pre_reload_split ()
27472 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
27473 : STRIP_UNARY (operands[4]))
27474 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27475 : STRIP_UNARY (operands[4]))
27476 : || rtx_equal_p (STRIP_UNARY (operands[1]),
27477 : STRIP_UNARY (operands[3]))
27478 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27479 : STRIP_UNARY (operands[3])))) &&
27480 : #line 345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27481 : (TARGET_AVX512F)) &&
27482 : #line 14114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27483 : ( 1)))
27484 : return NULL;
27485 : return gen_split_1749 (insn, operands);
27486 :
27487 : case 25:
27488 : if (!((
27489 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27490 : ((32 == 64 || TARGET_AVX512VL
27491 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
27492 : && ix86_pre_reload_split ()
27493 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
27494 : STRIP_UNARY (operands[4]))
27495 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27496 : STRIP_UNARY (operands[4]))
27497 : || rtx_equal_p (STRIP_UNARY (operands[1]),
27498 : STRIP_UNARY (operands[3]))
27499 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27500 : STRIP_UNARY (operands[3])))) &&
27501 : #line 345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27502 : (TARGET_AVX)) &&
27503 : #line 14114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27504 : ( 1)))
27505 : return NULL;
27506 : return gen_split_1776 (insn, operands);
27507 :
27508 : case 26:
27509 : if (!(
27510 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27511 : ((16 == 64 || TARGET_AVX512VL
27512 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
27513 : && ix86_pre_reload_split ()
27514 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
27515 : STRIP_UNARY (operands[4]))
27516 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27517 : STRIP_UNARY (operands[4]))
27518 : || rtx_equal_p (STRIP_UNARY (operands[1]),
27519 : STRIP_UNARY (operands[3]))
27520 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27521 : STRIP_UNARY (operands[3])))) &&
27522 : #line 14114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27523 : ( 1)))
27524 : return NULL;
27525 : return gen_split_1803 (insn, operands);
27526 :
27527 : case 27:
27528 : if (!((
27529 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27530 : ((64 == 64 || TARGET_AVX512VL
27531 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
27532 : && ix86_pre_reload_split ()
27533 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
27534 : STRIP_UNARY (operands[4]))
27535 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27536 : STRIP_UNARY (operands[4]))
27537 : || rtx_equal_p (STRIP_UNARY (operands[1]),
27538 : STRIP_UNARY (operands[3]))
27539 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27540 : STRIP_UNARY (operands[3])))) &&
27541 : #line 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27542 : (TARGET_AVX512F)) &&
27543 : #line 14114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27544 : ( 1)))
27545 : return NULL;
27546 : return gen_split_1830 (insn, operands);
27547 :
27548 : case 28:
27549 : if (!((
27550 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27551 : ((32 == 64 || TARGET_AVX512VL
27552 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
27553 : && ix86_pre_reload_split ()
27554 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
27555 : STRIP_UNARY (operands[4]))
27556 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27557 : STRIP_UNARY (operands[4]))
27558 : || rtx_equal_p (STRIP_UNARY (operands[1]),
27559 : STRIP_UNARY (operands[3]))
27560 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27561 : STRIP_UNARY (operands[3])))) &&
27562 : #line 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27563 : (TARGET_AVX)) &&
27564 : #line 14114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27565 : ( 1)))
27566 : return NULL;
27567 : return gen_split_1857 (insn, operands);
27568 :
27569 : case 29:
27570 : if (!(
27571 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27572 : ((16 == 64 || TARGET_AVX512VL
27573 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
27574 : && ix86_pre_reload_split ()
27575 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
27576 : STRIP_UNARY (operands[4]))
27577 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27578 : STRIP_UNARY (operands[4]))
27579 : || rtx_equal_p (STRIP_UNARY (operands[1]),
27580 : STRIP_UNARY (operands[3]))
27581 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27582 : STRIP_UNARY (operands[3])))) &&
27583 : #line 14114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27584 : ( 1)))
27585 : return NULL;
27586 : return gen_split_1884 (insn, operands);
27587 :
27588 : case 30:
27589 : if (!((
27590 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27591 : ((64 == 64 || TARGET_AVX512VL
27592 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
27593 : && ix86_pre_reload_split ()
27594 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
27595 : STRIP_UNARY (operands[4]))
27596 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27597 : STRIP_UNARY (operands[4]))
27598 : || rtx_equal_p (STRIP_UNARY (operands[1]),
27599 : STRIP_UNARY (operands[3]))
27600 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27601 : STRIP_UNARY (operands[3])))) &&
27602 : #line 347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27603 : (TARGET_AVX512F)) &&
27604 : #line 14114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27605 : ( 1)))
27606 : return NULL;
27607 : return gen_split_1911 (insn, operands);
27608 :
27609 : case 31:
27610 : if (!((
27611 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27612 : ((32 == 64 || TARGET_AVX512VL
27613 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
27614 : && ix86_pre_reload_split ()
27615 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
27616 : STRIP_UNARY (operands[4]))
27617 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27618 : STRIP_UNARY (operands[4]))
27619 : || rtx_equal_p (STRIP_UNARY (operands[1]),
27620 : STRIP_UNARY (operands[3]))
27621 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27622 : STRIP_UNARY (operands[3])))) &&
27623 : #line 347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27624 : (TARGET_AVX)) &&
27625 : #line 14114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27626 : ( 1)))
27627 : return NULL;
27628 : return gen_split_1938 (insn, operands);
27629 :
27630 : case 32:
27631 : if (!(
27632 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27633 : ((16 == 64 || TARGET_AVX512VL
27634 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
27635 : && ix86_pre_reload_split ()
27636 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
27637 : STRIP_UNARY (operands[4]))
27638 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27639 : STRIP_UNARY (operands[4]))
27640 : || rtx_equal_p (STRIP_UNARY (operands[1]),
27641 : STRIP_UNARY (operands[3]))
27642 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27643 : STRIP_UNARY (operands[3])))) &&
27644 : #line 14114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27645 : ( 1)))
27646 : return NULL;
27647 : return gen_split_1965 (insn, operands);
27648 :
27649 : case 33:
27650 : if (!((
27651 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27652 : ((64 == 64 || TARGET_AVX512VL
27653 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
27654 : && ix86_pre_reload_split ()
27655 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
27656 : STRIP_UNARY (operands[4]))
27657 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27658 : STRIP_UNARY (operands[4]))
27659 : || rtx_equal_p (STRIP_UNARY (operands[1]),
27660 : STRIP_UNARY (operands[3]))
27661 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27662 : STRIP_UNARY (operands[3])))) &&
27663 : #line 348 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27664 : (TARGET_AVX512F)) &&
27665 : #line 14114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27666 : ( 1)))
27667 : return NULL;
27668 : return gen_split_1992 (insn, operands);
27669 :
27670 : case 34:
27671 : if (!((
27672 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27673 : ((32 == 64 || TARGET_AVX512VL
27674 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
27675 : && ix86_pre_reload_split ()
27676 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
27677 : STRIP_UNARY (operands[4]))
27678 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27679 : STRIP_UNARY (operands[4]))
27680 : || rtx_equal_p (STRIP_UNARY (operands[1]),
27681 : STRIP_UNARY (operands[3]))
27682 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27683 : STRIP_UNARY (operands[3])))) &&
27684 : #line 348 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27685 : (TARGET_AVX)) &&
27686 : #line 14114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27687 : ( 1)))
27688 : return NULL;
27689 : return gen_split_2019 (insn, operands);
27690 :
27691 : case 35:
27692 : if (!(
27693 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27694 : ((16 == 64 || TARGET_AVX512VL
27695 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
27696 : && ix86_pre_reload_split ()
27697 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
27698 : STRIP_UNARY (operands[4]))
27699 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27700 : STRIP_UNARY (operands[4]))
27701 : || rtx_equal_p (STRIP_UNARY (operands[1]),
27702 : STRIP_UNARY (operands[3]))
27703 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27704 : STRIP_UNARY (operands[3])))) &&
27705 : #line 14114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27706 : ( 1)))
27707 : return NULL;
27708 : return gen_split_2046 (insn, operands);
27709 :
27710 : case 36:
27711 : if (!((
27712 : #line 14271 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27713 : ((64 == 64 || TARGET_AVX512VL
27714 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
27715 : && ix86_pre_reload_split ()) &&
27716 : #line 345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27717 : (TARGET_AVX512F)) &&
27718 : #line 14275 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27719 : ( 1)))
27720 : return NULL;
27721 : return gen_split_3039 (insn, operands);
27722 :
27723 : case 37:
27724 : if (!((
27725 : #line 14271 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27726 : ((32 == 64 || TARGET_AVX512VL
27727 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
27728 : && ix86_pre_reload_split ()) &&
27729 : #line 345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27730 : (TARGET_AVX)) &&
27731 : #line 14275 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27732 : ( 1)))
27733 : return NULL;
27734 : return gen_split_3048 (insn, operands);
27735 :
27736 : case 38:
27737 : if (!(
27738 : #line 14271 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27739 : ((16 == 64 || TARGET_AVX512VL
27740 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
27741 : && ix86_pre_reload_split ()) &&
27742 : #line 14275 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27743 : ( 1)))
27744 : return NULL;
27745 : return gen_split_3057 (insn, operands);
27746 :
27747 : case 39:
27748 : if (!((
27749 : #line 14271 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27750 : ((64 == 64 || TARGET_AVX512VL
27751 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
27752 : && ix86_pre_reload_split ()) &&
27753 : #line 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27754 : (TARGET_AVX512F)) &&
27755 : #line 14275 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27756 : ( 1)))
27757 : return NULL;
27758 : return gen_split_3066 (insn, operands);
27759 :
27760 : case 40:
27761 : if (!((
27762 : #line 14271 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27763 : ((32 == 64 || TARGET_AVX512VL
27764 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
27765 : && ix86_pre_reload_split ()) &&
27766 : #line 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27767 : (TARGET_AVX)) &&
27768 : #line 14275 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27769 : ( 1)))
27770 : return NULL;
27771 : return gen_split_3075 (insn, operands);
27772 :
27773 : case 41:
27774 : if (!(
27775 : #line 14271 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27776 : ((16 == 64 || TARGET_AVX512VL
27777 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
27778 : && ix86_pre_reload_split ()) &&
27779 : #line 14275 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27780 : ( 1)))
27781 : return NULL;
27782 : return gen_split_3084 (insn, operands);
27783 :
27784 : case 42:
27785 : if (!((
27786 : #line 14271 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27787 : ((64 == 64 || TARGET_AVX512VL
27788 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
27789 : && ix86_pre_reload_split ()) &&
27790 : #line 347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27791 : (TARGET_AVX512F)) &&
27792 : #line 14275 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27793 : ( 1)))
27794 : return NULL;
27795 : return gen_split_3093 (insn, operands);
27796 :
27797 : case 43:
27798 : if (!((
27799 : #line 14271 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27800 : ((32 == 64 || TARGET_AVX512VL
27801 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
27802 : && ix86_pre_reload_split ()) &&
27803 : #line 347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27804 : (TARGET_AVX)) &&
27805 : #line 14275 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27806 : ( 1)))
27807 : return NULL;
27808 : return gen_split_3102 (insn, operands);
27809 :
27810 : case 44:
27811 : if (!(
27812 : #line 14271 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27813 : ((16 == 64 || TARGET_AVX512VL
27814 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
27815 : && ix86_pre_reload_split ()) &&
27816 : #line 14275 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27817 : ( 1)))
27818 : return NULL;
27819 : return gen_split_3111 (insn, operands);
27820 :
27821 : case 45:
27822 : if (!((
27823 : #line 14271 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27824 : ((64 == 64 || TARGET_AVX512VL
27825 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
27826 : && ix86_pre_reload_split ()) &&
27827 : #line 348 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27828 : (TARGET_AVX512F)) &&
27829 : #line 14275 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27830 : ( 1)))
27831 : return NULL;
27832 : return gen_split_3120 (insn, operands);
27833 :
27834 : case 46:
27835 : if (!((
27836 : #line 14271 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27837 : ((32 == 64 || TARGET_AVX512VL
27838 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
27839 : && ix86_pre_reload_split ()) &&
27840 : #line 348 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27841 : (TARGET_AVX)) &&
27842 : #line 14275 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27843 : ( 1)))
27844 : return NULL;
27845 : return gen_split_3129 (insn, operands);
27846 :
27847 : case 47:
27848 : if (!(
27849 : #line 14271 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27850 : ((16 == 64 || TARGET_AVX512VL
27851 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
27852 : && ix86_pre_reload_split ()) &&
27853 : #line 14275 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27854 : ( 1)))
27855 : return NULL;
27856 : return gen_split_3138 (insn, operands);
27857 :
27858 : default:
27859 : return NULL;
27860 : }
27861 :
27862 : case AND:
27863 : switch (pattern537 (x2))
27864 : {
27865 : case 0:
27866 : if (!((
27867 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27868 : ((64 == 64 || TARGET_AVX512VL
27869 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
27870 : && ix86_pre_reload_split ()
27871 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
27872 : STRIP_UNARY (operands[4]))
27873 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27874 : STRIP_UNARY (operands[4]))
27875 : || rtx_equal_p (STRIP_UNARY (operands[1]),
27876 : STRIP_UNARY (operands[3]))
27877 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27878 : STRIP_UNARY (operands[3])))) &&
27879 : #line 345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27880 : (TARGET_AVX512F)) &&
27881 : #line 14199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27882 : ( 1)))
27883 : return NULL;
27884 : return gen_split_2391 (insn, operands);
27885 :
27886 : case 1:
27887 : if (!((
27888 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27889 : ((32 == 64 || TARGET_AVX512VL
27890 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
27891 : && ix86_pre_reload_split ()
27892 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
27893 : STRIP_UNARY (operands[4]))
27894 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27895 : STRIP_UNARY (operands[4]))
27896 : || rtx_equal_p (STRIP_UNARY (operands[1]),
27897 : STRIP_UNARY (operands[3]))
27898 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27899 : STRIP_UNARY (operands[3])))) &&
27900 : #line 345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27901 : (TARGET_AVX)) &&
27902 : #line 14199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27903 : ( 1)))
27904 : return NULL;
27905 : return gen_split_2418 (insn, operands);
27906 :
27907 : case 2:
27908 : if (!(
27909 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27910 : ((16 == 64 || TARGET_AVX512VL
27911 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
27912 : && ix86_pre_reload_split ()
27913 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
27914 : STRIP_UNARY (operands[4]))
27915 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27916 : STRIP_UNARY (operands[4]))
27917 : || rtx_equal_p (STRIP_UNARY (operands[1]),
27918 : STRIP_UNARY (operands[3]))
27919 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27920 : STRIP_UNARY (operands[3])))) &&
27921 : #line 14199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27922 : ( 1)))
27923 : return NULL;
27924 : return gen_split_2445 (insn, operands);
27925 :
27926 : case 3:
27927 : if (!((
27928 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27929 : ((64 == 64 || TARGET_AVX512VL
27930 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
27931 : && ix86_pre_reload_split ()
27932 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
27933 : STRIP_UNARY (operands[4]))
27934 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27935 : STRIP_UNARY (operands[4]))
27936 : || rtx_equal_p (STRIP_UNARY (operands[1]),
27937 : STRIP_UNARY (operands[3]))
27938 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27939 : STRIP_UNARY (operands[3])))) &&
27940 : #line 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27941 : (TARGET_AVX512F)) &&
27942 : #line 14199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27943 : ( 1)))
27944 : return NULL;
27945 : return gen_split_2472 (insn, operands);
27946 :
27947 : case 4:
27948 : if (!((
27949 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27950 : ((32 == 64 || TARGET_AVX512VL
27951 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
27952 : && ix86_pre_reload_split ()
27953 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
27954 : STRIP_UNARY (operands[4]))
27955 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27956 : STRIP_UNARY (operands[4]))
27957 : || rtx_equal_p (STRIP_UNARY (operands[1]),
27958 : STRIP_UNARY (operands[3]))
27959 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27960 : STRIP_UNARY (operands[3])))) &&
27961 : #line 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27962 : (TARGET_AVX)) &&
27963 : #line 14199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27964 : ( 1)))
27965 : return NULL;
27966 : return gen_split_2499 (insn, operands);
27967 :
27968 : case 5:
27969 : if (!(
27970 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27971 : ((16 == 64 || TARGET_AVX512VL
27972 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
27973 : && ix86_pre_reload_split ()
27974 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
27975 : STRIP_UNARY (operands[4]))
27976 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27977 : STRIP_UNARY (operands[4]))
27978 : || rtx_equal_p (STRIP_UNARY (operands[1]),
27979 : STRIP_UNARY (operands[3]))
27980 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27981 : STRIP_UNARY (operands[3])))) &&
27982 : #line 14199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27983 : ( 1)))
27984 : return NULL;
27985 : return gen_split_2526 (insn, operands);
27986 :
27987 : case 6:
27988 : if (!((
27989 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27990 : ((64 == 64 || TARGET_AVX512VL
27991 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
27992 : && ix86_pre_reload_split ()
27993 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
27994 : STRIP_UNARY (operands[4]))
27995 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27996 : STRIP_UNARY (operands[4]))
27997 : || rtx_equal_p (STRIP_UNARY (operands[1]),
27998 : STRIP_UNARY (operands[3]))
27999 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28000 : STRIP_UNARY (operands[3])))) &&
28001 : #line 347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28002 : (TARGET_AVX512F)) &&
28003 : #line 14199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28004 : ( 1)))
28005 : return NULL;
28006 : return gen_split_2553 (insn, operands);
28007 :
28008 : case 7:
28009 : if (!((
28010 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28011 : ((32 == 64 || TARGET_AVX512VL
28012 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28013 : && ix86_pre_reload_split ()
28014 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28015 : STRIP_UNARY (operands[4]))
28016 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28017 : STRIP_UNARY (operands[4]))
28018 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28019 : STRIP_UNARY (operands[3]))
28020 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28021 : STRIP_UNARY (operands[3])))) &&
28022 : #line 347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28023 : (TARGET_AVX)) &&
28024 : #line 14199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28025 : ( 1)))
28026 : return NULL;
28027 : return gen_split_2580 (insn, operands);
28028 :
28029 : case 8:
28030 : if (!(
28031 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28032 : ((16 == 64 || TARGET_AVX512VL
28033 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28034 : && ix86_pre_reload_split ()
28035 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28036 : STRIP_UNARY (operands[4]))
28037 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28038 : STRIP_UNARY (operands[4]))
28039 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28040 : STRIP_UNARY (operands[3]))
28041 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28042 : STRIP_UNARY (operands[3])))) &&
28043 : #line 14199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28044 : ( 1)))
28045 : return NULL;
28046 : return gen_split_2607 (insn, operands);
28047 :
28048 : case 9:
28049 : if (!((
28050 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28051 : ((64 == 64 || TARGET_AVX512VL
28052 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28053 : && ix86_pre_reload_split ()
28054 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28055 : STRIP_UNARY (operands[4]))
28056 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28057 : STRIP_UNARY (operands[4]))
28058 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28059 : STRIP_UNARY (operands[3]))
28060 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28061 : STRIP_UNARY (operands[3])))) &&
28062 : #line 348 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28063 : (TARGET_AVX512F)) &&
28064 : #line 14199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28065 : ( 1)))
28066 : return NULL;
28067 : return gen_split_2634 (insn, operands);
28068 :
28069 : case 10:
28070 : if (!((
28071 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28072 : ((32 == 64 || TARGET_AVX512VL
28073 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28074 : && ix86_pre_reload_split ()
28075 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28076 : STRIP_UNARY (operands[4]))
28077 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28078 : STRIP_UNARY (operands[4]))
28079 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28080 : STRIP_UNARY (operands[3]))
28081 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28082 : STRIP_UNARY (operands[3])))) &&
28083 : #line 348 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28084 : (TARGET_AVX)) &&
28085 : #line 14199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28086 : ( 1)))
28087 : return NULL;
28088 : return gen_split_2661 (insn, operands);
28089 :
28090 : case 11:
28091 : if (!(
28092 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28093 : ((16 == 64 || TARGET_AVX512VL
28094 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28095 : && ix86_pre_reload_split ()
28096 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28097 : STRIP_UNARY (operands[4]))
28098 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28099 : STRIP_UNARY (operands[4]))
28100 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28101 : STRIP_UNARY (operands[3]))
28102 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28103 : STRIP_UNARY (operands[3])))) &&
28104 : #line 14199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28105 : ( 1)))
28106 : return NULL;
28107 : return gen_split_2688 (insn, operands);
28108 :
28109 : default:
28110 : return NULL;
28111 : }
28112 :
28113 : case IOR:
28114 : switch (pattern537 (x2))
28115 : {
28116 : case 0:
28117 : if (!((
28118 : #line 14187 "/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 345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28131 : (TARGET_AVX512F)) &&
28132 : #line 14199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28133 : ( 1)))
28134 : return NULL;
28135 : return gen_split_2394 (insn, operands);
28136 :
28137 : case 1:
28138 : if (!((
28139 : #line 14187 "/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 345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28152 : (TARGET_AVX)) &&
28153 : #line 14199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28154 : ( 1)))
28155 : return NULL;
28156 : return gen_split_2421 (insn, operands);
28157 :
28158 : case 2:
28159 : if (!(
28160 : #line 14187 "/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 14199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28173 : ( 1)))
28174 : return NULL;
28175 : return gen_split_2448 (insn, operands);
28176 :
28177 : case 3:
28178 : if (!((
28179 : #line 14187 "/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 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28192 : (TARGET_AVX512F)) &&
28193 : #line 14199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28194 : ( 1)))
28195 : return NULL;
28196 : return gen_split_2475 (insn, operands);
28197 :
28198 : case 4:
28199 : if (!((
28200 : #line 14187 "/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 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28213 : (TARGET_AVX)) &&
28214 : #line 14199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28215 : ( 1)))
28216 : return NULL;
28217 : return gen_split_2502 (insn, operands);
28218 :
28219 : case 5:
28220 : if (!(
28221 : #line 14187 "/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 14199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28234 : ( 1)))
28235 : return NULL;
28236 : return gen_split_2529 (insn, operands);
28237 :
28238 : case 6:
28239 : if (!((
28240 : #line 14187 "/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 347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28253 : (TARGET_AVX512F)) &&
28254 : #line 14199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28255 : ( 1)))
28256 : return NULL;
28257 : return gen_split_2556 (insn, operands);
28258 :
28259 : case 7:
28260 : if (!((
28261 : #line 14187 "/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 347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28274 : (TARGET_AVX)) &&
28275 : #line 14199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28276 : ( 1)))
28277 : return NULL;
28278 : return gen_split_2583 (insn, operands);
28279 :
28280 : case 8:
28281 : if (!(
28282 : #line 14187 "/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 14199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28295 : ( 1)))
28296 : return NULL;
28297 : return gen_split_2610 (insn, operands);
28298 :
28299 : case 9:
28300 : if (!((
28301 : #line 14187 "/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 348 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28314 : (TARGET_AVX512F)) &&
28315 : #line 14199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28316 : ( 1)))
28317 : return NULL;
28318 : return gen_split_2637 (insn, operands);
28319 :
28320 : case 10:
28321 : if (!((
28322 : #line 14187 "/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 348 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28335 : (TARGET_AVX)) &&
28336 : #line 14199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28337 : ( 1)))
28338 : return NULL;
28339 : return gen_split_2664 (insn, operands);
28340 :
28341 : case 11:
28342 : if (!(
28343 : #line 14187 "/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 14199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28356 : ( 1)))
28357 : return NULL;
28358 : return gen_split_2691 (insn, operands);
28359 :
28360 : default:
28361 : return NULL;
28362 : }
28363 :
28364 : case XOR:
28365 : x5 = XEXP (x4, 0);
28366 : operands[1] = x5;
28367 : x6 = XEXP (x4, 1);
28368 : operands[2] = x6;
28369 : x7 = XEXP (x3, 1);
28370 : operands[3] = x7;
28371 : switch (GET_MODE (operands[0]))
28372 : {
28373 : case E_V64QImode:
28374 : if (pattern1197 (x2,
28375 : E_V64QImode) != 0
28376 : || !((
28377 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28378 : ((64 == 64 || TARGET_AVX512VL
28379 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28380 : && ix86_pre_reload_split ()
28381 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28382 : STRIP_UNARY (operands[4]))
28383 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28384 : STRIP_UNARY (operands[4]))
28385 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28386 : STRIP_UNARY (operands[3]))
28387 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28388 : STRIP_UNARY (operands[3])))) &&
28389 : #line 345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28390 : (TARGET_AVX512F)) &&
28391 : #line 14199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28392 : ( 1)))
28393 : return NULL;
28394 : return gen_split_2397 (insn, operands);
28395 :
28396 : case E_V32QImode:
28397 : if (pattern1007 (x2,
28398 : E_V32QImode) != 0)
28399 : return NULL;
28400 : if (regmem_or_bitnot_regmem_operand (operands[1], E_V32QImode)
28401 : && regmem_or_bitnot_regmem_operand (operands[2], E_V32QImode)
28402 : && regmem_or_bitnot_regmem_operand (operands[3], E_V32QImode))
28403 : {
28404 : x8 = XEXP (x2, 1);
28405 : operands[4] = x8;
28406 : if (regmem_or_bitnot_regmem_operand (operands[4], E_V32QImode)
28407 : && ((
28408 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28409 : ((32 == 64 || TARGET_AVX512VL
28410 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28411 : && ix86_pre_reload_split ()
28412 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28413 : STRIP_UNARY (operands[4]))
28414 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28415 : STRIP_UNARY (operands[4]))
28416 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28417 : STRIP_UNARY (operands[3]))
28418 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28419 : STRIP_UNARY (operands[3])))) &&
28420 : #line 345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28421 : (TARGET_AVX)) &&
28422 : #line 14199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28423 : ( 1)))
28424 : return gen_split_2424 (insn, operands);
28425 : }
28426 : if (!register_operand (operands[1], E_V32QImode)
28427 : || !register_operand (operands[2], E_V32QImode)
28428 : || !nonimmediate_operand (operands[3], E_V32QImode))
28429 : return NULL;
28430 : x8 = XEXP (x2, 1);
28431 : if (rtx_equal_p (x8, operands[1])
28432 : &&
28433 : #line 26842 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28434 : (TARGET_XOP))
28435 : return gen_split_3793 (insn, operands);
28436 : if (!rtx_equal_p (x8, operands[2])
28437 : || !
28438 : #line 26854 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28439 : (TARGET_XOP))
28440 : return NULL;
28441 : return gen_split_3809 (insn, operands);
28442 :
28443 : case E_V16QImode:
28444 : if (pattern1007 (x2,
28445 : E_V16QImode) != 0)
28446 : return NULL;
28447 : if (regmem_or_bitnot_regmem_operand (operands[1], E_V16QImode)
28448 : && regmem_or_bitnot_regmem_operand (operands[2], E_V16QImode)
28449 : && regmem_or_bitnot_regmem_operand (operands[3], E_V16QImode))
28450 : {
28451 : x8 = XEXP (x2, 1);
28452 : operands[4] = x8;
28453 : if (regmem_or_bitnot_regmem_operand (operands[4], E_V16QImode)
28454 : && (
28455 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28456 : ((16 == 64 || TARGET_AVX512VL
28457 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28458 : && ix86_pre_reload_split ()
28459 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28460 : STRIP_UNARY (operands[4]))
28461 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28462 : STRIP_UNARY (operands[4]))
28463 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28464 : STRIP_UNARY (operands[3]))
28465 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28466 : STRIP_UNARY (operands[3])))) &&
28467 : #line 14199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28468 : ( 1)))
28469 : return gen_split_2451 (insn, operands);
28470 : }
28471 : if (!register_operand (operands[1], E_V16QImode)
28472 : || !register_operand (operands[2], E_V16QImode)
28473 : || !nonimmediate_operand (operands[3], E_V16QImode))
28474 : return NULL;
28475 : x8 = XEXP (x2, 1);
28476 : if (rtx_equal_p (x8, operands[1])
28477 : &&
28478 : #line 26842 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28479 : (TARGET_XOP))
28480 : return gen_split_3794 (insn, operands);
28481 : if (!rtx_equal_p (x8, operands[2])
28482 : || !
28483 : #line 26854 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28484 : (TARGET_XOP))
28485 : return NULL;
28486 : return gen_split_3810 (insn, operands);
28487 :
28488 : case E_V32HImode:
28489 : if (pattern1197 (x2,
28490 : E_V32HImode) != 0
28491 : || !((
28492 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28493 : ((64 == 64 || TARGET_AVX512VL
28494 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28495 : && ix86_pre_reload_split ()
28496 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28497 : STRIP_UNARY (operands[4]))
28498 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28499 : STRIP_UNARY (operands[4]))
28500 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28501 : STRIP_UNARY (operands[3]))
28502 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28503 : STRIP_UNARY (operands[3])))) &&
28504 : #line 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28505 : (TARGET_AVX512F)) &&
28506 : #line 14199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28507 : ( 1)))
28508 : return NULL;
28509 : return gen_split_2478 (insn, operands);
28510 :
28511 : case E_V16HImode:
28512 : if (pattern1007 (x2,
28513 : E_V16HImode) != 0)
28514 : return NULL;
28515 : if (regmem_or_bitnot_regmem_operand (operands[1], E_V16HImode)
28516 : && regmem_or_bitnot_regmem_operand (operands[2], E_V16HImode)
28517 : && regmem_or_bitnot_regmem_operand (operands[3], E_V16HImode))
28518 : {
28519 : x8 = XEXP (x2, 1);
28520 : operands[4] = x8;
28521 : if (regmem_or_bitnot_regmem_operand (operands[4], E_V16HImode)
28522 : && ((
28523 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28524 : ((32 == 64 || TARGET_AVX512VL
28525 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28526 : && ix86_pre_reload_split ()
28527 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28528 : STRIP_UNARY (operands[4]))
28529 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28530 : STRIP_UNARY (operands[4]))
28531 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28532 : STRIP_UNARY (operands[3]))
28533 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28534 : STRIP_UNARY (operands[3])))) &&
28535 : #line 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28536 : (TARGET_AVX)) &&
28537 : #line 14199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28538 : ( 1)))
28539 : return gen_split_2505 (insn, operands);
28540 : }
28541 : if (!register_operand (operands[1], E_V16HImode)
28542 : || !register_operand (operands[2], E_V16HImode)
28543 : || !nonimmediate_operand (operands[3], E_V16HImode))
28544 : return NULL;
28545 : x8 = XEXP (x2, 1);
28546 : if (rtx_equal_p (x8, operands[1])
28547 : &&
28548 : #line 26842 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28549 : (TARGET_XOP))
28550 : return gen_split_3795 (insn, operands);
28551 : if (!rtx_equal_p (x8, operands[2])
28552 : || !
28553 : #line 26854 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28554 : (TARGET_XOP))
28555 : return NULL;
28556 : return gen_split_3811 (insn, operands);
28557 :
28558 : case E_V8HImode:
28559 : if (pattern1007 (x2,
28560 : E_V8HImode) != 0)
28561 : return NULL;
28562 : if (regmem_or_bitnot_regmem_operand (operands[1], E_V8HImode)
28563 : && regmem_or_bitnot_regmem_operand (operands[2], E_V8HImode)
28564 : && regmem_or_bitnot_regmem_operand (operands[3], E_V8HImode))
28565 : {
28566 : x8 = XEXP (x2, 1);
28567 : operands[4] = x8;
28568 : if (regmem_or_bitnot_regmem_operand (operands[4], E_V8HImode)
28569 : && (
28570 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28571 : ((16 == 64 || TARGET_AVX512VL
28572 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28573 : && ix86_pre_reload_split ()
28574 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28575 : STRIP_UNARY (operands[4]))
28576 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28577 : STRIP_UNARY (operands[4]))
28578 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28579 : STRIP_UNARY (operands[3]))
28580 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28581 : STRIP_UNARY (operands[3])))) &&
28582 : #line 14199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28583 : ( 1)))
28584 : return gen_split_2532 (insn, operands);
28585 : }
28586 : if (!register_operand (operands[1], E_V8HImode)
28587 : || !register_operand (operands[2], E_V8HImode)
28588 : || !nonimmediate_operand (operands[3], E_V8HImode))
28589 : return NULL;
28590 : x8 = XEXP (x2, 1);
28591 : if (rtx_equal_p (x8, operands[1])
28592 : &&
28593 : #line 26842 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28594 : (TARGET_XOP))
28595 : return gen_split_3796 (insn, operands);
28596 : if (!rtx_equal_p (x8, operands[2])
28597 : || !
28598 : #line 26854 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28599 : (TARGET_XOP))
28600 : return NULL;
28601 : return gen_split_3812 (insn, operands);
28602 :
28603 : case E_V16SImode:
28604 : if (pattern1197 (x2,
28605 : E_V16SImode) != 0
28606 : || !((
28607 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28608 : ((64 == 64 || TARGET_AVX512VL
28609 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28610 : && ix86_pre_reload_split ()
28611 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28612 : STRIP_UNARY (operands[4]))
28613 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28614 : STRIP_UNARY (operands[4]))
28615 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28616 : STRIP_UNARY (operands[3]))
28617 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28618 : STRIP_UNARY (operands[3])))) &&
28619 : #line 347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28620 : (TARGET_AVX512F)) &&
28621 : #line 14199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28622 : ( 1)))
28623 : return NULL;
28624 : return gen_split_2559 (insn, operands);
28625 :
28626 : case E_V8SImode:
28627 : if (pattern1007 (x2,
28628 : E_V8SImode) != 0)
28629 : return NULL;
28630 : if (regmem_or_bitnot_regmem_operand (operands[1], E_V8SImode)
28631 : && regmem_or_bitnot_regmem_operand (operands[2], E_V8SImode)
28632 : && regmem_or_bitnot_regmem_operand (operands[3], E_V8SImode))
28633 : {
28634 : x8 = XEXP (x2, 1);
28635 : operands[4] = x8;
28636 : if (regmem_or_bitnot_regmem_operand (operands[4], E_V8SImode)
28637 : && ((
28638 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28639 : ((32 == 64 || TARGET_AVX512VL
28640 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28641 : && ix86_pre_reload_split ()
28642 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28643 : STRIP_UNARY (operands[4]))
28644 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28645 : STRIP_UNARY (operands[4]))
28646 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28647 : STRIP_UNARY (operands[3]))
28648 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28649 : STRIP_UNARY (operands[3])))) &&
28650 : #line 347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28651 : (TARGET_AVX)) &&
28652 : #line 14199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28653 : ( 1)))
28654 : return gen_split_2586 (insn, operands);
28655 : }
28656 : if (!register_operand (operands[1], E_V8SImode)
28657 : || !register_operand (operands[2], E_V8SImode)
28658 : || !nonimmediate_operand (operands[3], E_V8SImode))
28659 : return NULL;
28660 : x8 = XEXP (x2, 1);
28661 : if (rtx_equal_p (x8, operands[1])
28662 : &&
28663 : #line 26842 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28664 : (TARGET_XOP))
28665 : return gen_split_3797 (insn, operands);
28666 : if (!rtx_equal_p (x8, operands[2])
28667 : || !
28668 : #line 26854 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28669 : (TARGET_XOP))
28670 : return NULL;
28671 : return gen_split_3813 (insn, operands);
28672 :
28673 : case E_V4SImode:
28674 : if (pattern1007 (x2,
28675 : E_V4SImode) != 0)
28676 : return NULL;
28677 : if (regmem_or_bitnot_regmem_operand (operands[1], E_V4SImode)
28678 : && regmem_or_bitnot_regmem_operand (operands[2], E_V4SImode)
28679 : && regmem_or_bitnot_regmem_operand (operands[3], E_V4SImode))
28680 : {
28681 : x8 = XEXP (x2, 1);
28682 : operands[4] = x8;
28683 : if (regmem_or_bitnot_regmem_operand (operands[4], E_V4SImode)
28684 : && (
28685 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28686 : ((16 == 64 || TARGET_AVX512VL
28687 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28688 : && ix86_pre_reload_split ()
28689 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28690 : STRIP_UNARY (operands[4]))
28691 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28692 : STRIP_UNARY (operands[4]))
28693 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28694 : STRIP_UNARY (operands[3]))
28695 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28696 : STRIP_UNARY (operands[3])))) &&
28697 : #line 14199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28698 : ( 1)))
28699 : return gen_split_2613 (insn, operands);
28700 : }
28701 : if (!register_operand (operands[1], E_V4SImode)
28702 : || !register_operand (operands[2], E_V4SImode)
28703 : || !nonimmediate_operand (operands[3], E_V4SImode))
28704 : return NULL;
28705 : x8 = XEXP (x2, 1);
28706 : if (rtx_equal_p (x8, operands[1])
28707 : &&
28708 : #line 26842 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28709 : (TARGET_XOP))
28710 : return gen_split_3798 (insn, operands);
28711 : if (!rtx_equal_p (x8, operands[2])
28712 : || !
28713 : #line 26854 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28714 : (TARGET_XOP))
28715 : return NULL;
28716 : return gen_split_3814 (insn, operands);
28717 :
28718 : case E_V8DImode:
28719 : if (pattern1197 (x2,
28720 : E_V8DImode) != 0
28721 : || !((
28722 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28723 : ((64 == 64 || TARGET_AVX512VL
28724 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28725 : && ix86_pre_reload_split ()
28726 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28727 : STRIP_UNARY (operands[4]))
28728 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28729 : STRIP_UNARY (operands[4]))
28730 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28731 : STRIP_UNARY (operands[3]))
28732 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28733 : STRIP_UNARY (operands[3])))) &&
28734 : #line 348 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28735 : (TARGET_AVX512F)) &&
28736 : #line 14199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28737 : ( 1)))
28738 : return NULL;
28739 : return gen_split_2640 (insn, operands);
28740 :
28741 : case E_V4DImode:
28742 : if (pattern1007 (x2,
28743 : E_V4DImode) != 0)
28744 : return NULL;
28745 : if (regmem_or_bitnot_regmem_operand (operands[1], E_V4DImode)
28746 : && regmem_or_bitnot_regmem_operand (operands[2], E_V4DImode)
28747 : && regmem_or_bitnot_regmem_operand (operands[3], E_V4DImode))
28748 : {
28749 : x8 = XEXP (x2, 1);
28750 : operands[4] = x8;
28751 : if (regmem_or_bitnot_regmem_operand (operands[4], E_V4DImode)
28752 : && ((
28753 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28754 : ((32 == 64 || TARGET_AVX512VL
28755 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28756 : && ix86_pre_reload_split ()
28757 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28758 : STRIP_UNARY (operands[4]))
28759 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28760 : STRIP_UNARY (operands[4]))
28761 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28762 : STRIP_UNARY (operands[3]))
28763 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28764 : STRIP_UNARY (operands[3])))) &&
28765 : #line 348 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28766 : (TARGET_AVX)) &&
28767 : #line 14199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28768 : ( 1)))
28769 : return gen_split_2667 (insn, operands);
28770 : }
28771 : if (!register_operand (operands[1], E_V4DImode)
28772 : || !register_operand (operands[2], E_V4DImode)
28773 : || !nonimmediate_operand (operands[3], E_V4DImode))
28774 : return NULL;
28775 : x8 = XEXP (x2, 1);
28776 : if (rtx_equal_p (x8, operands[1])
28777 : &&
28778 : #line 26842 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28779 : (TARGET_XOP))
28780 : return gen_split_3799 (insn, operands);
28781 : if (!rtx_equal_p (x8, operands[2])
28782 : || !
28783 : #line 26854 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28784 : (TARGET_XOP))
28785 : return NULL;
28786 : return gen_split_3815 (insn, operands);
28787 :
28788 : case E_V2DImode:
28789 : if (pattern1007 (x2,
28790 : E_V2DImode) != 0)
28791 : return NULL;
28792 : if (regmem_or_bitnot_regmem_operand (operands[1], E_V2DImode)
28793 : && regmem_or_bitnot_regmem_operand (operands[2], E_V2DImode)
28794 : && regmem_or_bitnot_regmem_operand (operands[3], E_V2DImode))
28795 : {
28796 : x8 = XEXP (x2, 1);
28797 : operands[4] = x8;
28798 : if (regmem_or_bitnot_regmem_operand (operands[4], E_V2DImode)
28799 : && (
28800 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28801 : ((16 == 64 || TARGET_AVX512VL
28802 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28803 : && ix86_pre_reload_split ()
28804 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28805 : STRIP_UNARY (operands[4]))
28806 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28807 : STRIP_UNARY (operands[4]))
28808 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28809 : STRIP_UNARY (operands[3]))
28810 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28811 : STRIP_UNARY (operands[3])))) &&
28812 : #line 14199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28813 : ( 1)))
28814 : return gen_split_2694 (insn, operands);
28815 : }
28816 : if (!register_operand (operands[1], E_V2DImode)
28817 : || !register_operand (operands[2], E_V2DImode)
28818 : || !nonimmediate_operand (operands[3], E_V2DImode))
28819 : return NULL;
28820 : x8 = XEXP (x2, 1);
28821 : if (rtx_equal_p (x8, operands[1])
28822 : &&
28823 : #line 26842 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28824 : (TARGET_XOP))
28825 : return gen_split_3800 (insn, operands);
28826 : if (!rtx_equal_p (x8, operands[2])
28827 : || !
28828 : #line 26854 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28829 : (TARGET_XOP))
28830 : return NULL;
28831 : return gen_split_3816 (insn, operands);
28832 :
28833 : case E_V2TImode:
28834 : if (pattern1198 (x2,
28835 : E_V2TImode) != 0)
28836 : return NULL;
28837 : x8 = XEXP (x2, 1);
28838 : if (rtx_equal_p (x8, operands[1])
28839 : &&
28840 : #line 26842 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28841 : (TARGET_XOP))
28842 : return gen_split_3801 (insn, operands);
28843 : if (!rtx_equal_p (x8, operands[2])
28844 : || !
28845 : #line 26854 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28846 : (TARGET_XOP))
28847 : return NULL;
28848 : return gen_split_3817 (insn, operands);
28849 :
28850 : case E_V1TImode:
28851 : if (pattern1198 (x2,
28852 : E_V1TImode) != 0)
28853 : return NULL;
28854 : x8 = XEXP (x2, 1);
28855 : if (rtx_equal_p (x8, operands[1])
28856 : &&
28857 : #line 26842 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28858 : (TARGET_XOP))
28859 : return gen_split_3802 (insn, operands);
28860 : if (!rtx_equal_p (x8, operands[2])
28861 : || !
28862 : #line 26854 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28863 : (TARGET_XOP))
28864 : return NULL;
28865 : return gen_split_3818 (insn, operands);
28866 :
28867 : default:
28868 : return NULL;
28869 : }
28870 :
28871 : default:
28872 : return NULL;
28873 : }
28874 : }
28875 :
28876 : rtx_insn *
28877 : split_82 (rtx x1 ATTRIBUTE_UNUSED, rtx_insn *insn ATTRIBUTE_UNUSED)
28878 : {
28879 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
28880 : rtx x2, x3, x4, x5;
28881 : rtx_insn *res ATTRIBUTE_UNUSED;
28882 : x2 = XEXP (x1, 1);
28883 : switch (GET_CODE (x2))
28884 : {
28885 : case AND:
28886 : res = split_64 (x1, insn);
28887 : if (res != NULL_RTX)
28888 : return res;
28889 : break;
28890 :
28891 : case IOR:
28892 : res = split_71 (x1, insn);
28893 : if (res != NULL_RTX)
28894 : return res;
28895 : break;
28896 :
28897 : case XOR:
28898 : x3 = XEXP (x2, 0);
28899 : switch (GET_CODE (x3))
28900 : {
28901 : case AND:
28902 : res = split_66 (x1, insn);
28903 : if (res != NULL_RTX)
28904 : return res;
28905 : break;
28906 :
28907 : case IOR:
28908 : res = split_67 (x1, insn);
28909 : if (res != NULL_RTX)
28910 : return res;
28911 : break;
28912 :
28913 : case XOR:
28914 : x4 = XEXP (x3, 0);
28915 : switch (GET_CODE (x4))
28916 : {
28917 : case REG:
28918 : case SUBREG:
28919 : case MEM:
28920 : case NOT:
28921 : switch (pattern535 (x2))
28922 : {
28923 : case 0:
28924 : if (((
28925 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28926 : ((64 == 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 345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28938 : (TARGET_AVX512F)) &&
28939 : #line 14114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28940 : ( 1)))
28941 : return gen_split_1761 (insn, operands);
28942 : break;
28943 :
28944 : case 1:
28945 : if (((
28946 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28947 : ((32 == 64 || TARGET_AVX512VL
28948 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28949 : && ix86_pre_reload_split ()
28950 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28951 : STRIP_UNARY (operands[4]))
28952 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28953 : STRIP_UNARY (operands[4]))
28954 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28955 : STRIP_UNARY (operands[3]))
28956 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28957 : STRIP_UNARY (operands[3])))) &&
28958 : #line 345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28959 : (TARGET_AVX)) &&
28960 : #line 14114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28961 : ( 1)))
28962 : return gen_split_1788 (insn, operands);
28963 : break;
28964 :
28965 : case 2:
28966 : if ((
28967 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28968 : ((16 == 64 || TARGET_AVX512VL
28969 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28970 : && ix86_pre_reload_split ()
28971 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28972 : STRIP_UNARY (operands[4]))
28973 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28974 : STRIP_UNARY (operands[4]))
28975 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28976 : STRIP_UNARY (operands[3]))
28977 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28978 : STRIP_UNARY (operands[3])))) &&
28979 : #line 14114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28980 : ( 1)))
28981 : return gen_split_1815 (insn, operands);
28982 : break;
28983 :
28984 : case 3:
28985 : if (((
28986 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28987 : ((64 == 64 || TARGET_AVX512VL
28988 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28989 : && ix86_pre_reload_split ()
28990 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28991 : STRIP_UNARY (operands[4]))
28992 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28993 : STRIP_UNARY (operands[4]))
28994 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28995 : STRIP_UNARY (operands[3]))
28996 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28997 : STRIP_UNARY (operands[3])))) &&
28998 : #line 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28999 : (TARGET_AVX512F)) &&
29000 : #line 14114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29001 : ( 1)))
29002 : return gen_split_1842 (insn, operands);
29003 : break;
29004 :
29005 : case 4:
29006 : if (((
29007 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29008 : ((32 == 64 || TARGET_AVX512VL
29009 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29010 : && ix86_pre_reload_split ()
29011 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
29012 : STRIP_UNARY (operands[4]))
29013 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29014 : STRIP_UNARY (operands[4]))
29015 : || rtx_equal_p (STRIP_UNARY (operands[1]),
29016 : STRIP_UNARY (operands[3]))
29017 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29018 : STRIP_UNARY (operands[3])))) &&
29019 : #line 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29020 : (TARGET_AVX)) &&
29021 : #line 14114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29022 : ( 1)))
29023 : return gen_split_1869 (insn, operands);
29024 : break;
29025 :
29026 : case 5:
29027 : if ((
29028 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29029 : ((16 == 64 || TARGET_AVX512VL
29030 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29031 : && ix86_pre_reload_split ()
29032 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
29033 : STRIP_UNARY (operands[4]))
29034 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29035 : STRIP_UNARY (operands[4]))
29036 : || rtx_equal_p (STRIP_UNARY (operands[1]),
29037 : STRIP_UNARY (operands[3]))
29038 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29039 : STRIP_UNARY (operands[3])))) &&
29040 : #line 14114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29041 : ( 1)))
29042 : return gen_split_1896 (insn, operands);
29043 : break;
29044 :
29045 : case 6:
29046 : if (((
29047 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29048 : ((64 == 64 || TARGET_AVX512VL
29049 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29050 : && ix86_pre_reload_split ()
29051 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
29052 : STRIP_UNARY (operands[4]))
29053 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29054 : STRIP_UNARY (operands[4]))
29055 : || rtx_equal_p (STRIP_UNARY (operands[1]),
29056 : STRIP_UNARY (operands[3]))
29057 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29058 : STRIP_UNARY (operands[3])))) &&
29059 : #line 347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29060 : (TARGET_AVX512F)) &&
29061 : #line 14114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29062 : ( 1)))
29063 : return gen_split_1923 (insn, operands);
29064 : break;
29065 :
29066 : case 7:
29067 : if (((
29068 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29069 : ((32 == 64 || TARGET_AVX512VL
29070 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29071 : && ix86_pre_reload_split ()
29072 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
29073 : STRIP_UNARY (operands[4]))
29074 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29075 : STRIP_UNARY (operands[4]))
29076 : || rtx_equal_p (STRIP_UNARY (operands[1]),
29077 : STRIP_UNARY (operands[3]))
29078 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29079 : STRIP_UNARY (operands[3])))) &&
29080 : #line 347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29081 : (TARGET_AVX)) &&
29082 : #line 14114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29083 : ( 1)))
29084 : return gen_split_1950 (insn, operands);
29085 : break;
29086 :
29087 : case 8:
29088 : if ((
29089 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29090 : ((16 == 64 || TARGET_AVX512VL
29091 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29092 : && ix86_pre_reload_split ()
29093 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
29094 : STRIP_UNARY (operands[4]))
29095 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29096 : STRIP_UNARY (operands[4]))
29097 : || rtx_equal_p (STRIP_UNARY (operands[1]),
29098 : STRIP_UNARY (operands[3]))
29099 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29100 : STRIP_UNARY (operands[3])))) &&
29101 : #line 14114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29102 : ( 1)))
29103 : return gen_split_1977 (insn, operands);
29104 : break;
29105 :
29106 : case 9:
29107 : if (((
29108 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29109 : ((64 == 64 || TARGET_AVX512VL
29110 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29111 : && ix86_pre_reload_split ()
29112 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
29113 : STRIP_UNARY (operands[4]))
29114 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29115 : STRIP_UNARY (operands[4]))
29116 : || rtx_equal_p (STRIP_UNARY (operands[1]),
29117 : STRIP_UNARY (operands[3]))
29118 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29119 : STRIP_UNARY (operands[3])))) &&
29120 : #line 348 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29121 : (TARGET_AVX512F)) &&
29122 : #line 14114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29123 : ( 1)))
29124 : return gen_split_2004 (insn, operands);
29125 : break;
29126 :
29127 : case 10:
29128 : if (((
29129 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29130 : ((32 == 64 || TARGET_AVX512VL
29131 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29132 : && ix86_pre_reload_split ()
29133 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
29134 : STRIP_UNARY (operands[4]))
29135 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29136 : STRIP_UNARY (operands[4]))
29137 : || rtx_equal_p (STRIP_UNARY (operands[1]),
29138 : STRIP_UNARY (operands[3]))
29139 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29140 : STRIP_UNARY (operands[3])))) &&
29141 : #line 348 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29142 : (TARGET_AVX)) &&
29143 : #line 14114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29144 : ( 1)))
29145 : return gen_split_2031 (insn, operands);
29146 : break;
29147 :
29148 : case 11:
29149 : if ((
29150 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29151 : ((16 == 64 || TARGET_AVX512VL
29152 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29153 : && ix86_pre_reload_split ()
29154 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
29155 : STRIP_UNARY (operands[4]))
29156 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29157 : STRIP_UNARY (operands[4]))
29158 : || rtx_equal_p (STRIP_UNARY (operands[1]),
29159 : STRIP_UNARY (operands[3]))
29160 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29161 : STRIP_UNARY (operands[3])))) &&
29162 : #line 14114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29163 : ( 1)))
29164 : return gen_split_2058 (insn, operands);
29165 : break;
29166 :
29167 : case 12:
29168 : if (((
29169 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29170 : ((64 == 64 || TARGET_AVX512VL
29171 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29172 : && ix86_pre_reload_split ()
29173 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
29174 : STRIP_UNARY (operands[4]))
29175 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29176 : STRIP_UNARY (operands[4]))
29177 : || rtx_equal_p (STRIP_UNARY (operands[1]),
29178 : STRIP_UNARY (operands[3]))
29179 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29180 : STRIP_UNARY (operands[3])))) &&
29181 : #line 345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29182 : (TARGET_AVX512F)) &&
29183 : #line 14114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29184 : ( 1)))
29185 : return gen_split_1764 (insn, operands);
29186 : break;
29187 :
29188 : case 13:
29189 : if (((
29190 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29191 : ((32 == 64 || TARGET_AVX512VL
29192 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29193 : && ix86_pre_reload_split ()
29194 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
29195 : STRIP_UNARY (operands[4]))
29196 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29197 : STRIP_UNARY (operands[4]))
29198 : || rtx_equal_p (STRIP_UNARY (operands[1]),
29199 : STRIP_UNARY (operands[3]))
29200 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29201 : STRIP_UNARY (operands[3])))) &&
29202 : #line 345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29203 : (TARGET_AVX)) &&
29204 : #line 14114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29205 : ( 1)))
29206 : return gen_split_1791 (insn, operands);
29207 : break;
29208 :
29209 : case 14:
29210 : if ((
29211 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29212 : ((16 == 64 || TARGET_AVX512VL
29213 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29214 : && ix86_pre_reload_split ()
29215 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
29216 : STRIP_UNARY (operands[4]))
29217 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29218 : STRIP_UNARY (operands[4]))
29219 : || rtx_equal_p (STRIP_UNARY (operands[1]),
29220 : STRIP_UNARY (operands[3]))
29221 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29222 : STRIP_UNARY (operands[3])))) &&
29223 : #line 14114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29224 : ( 1)))
29225 : return gen_split_1818 (insn, operands);
29226 : break;
29227 :
29228 : case 15:
29229 : if (((
29230 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29231 : ((64 == 64 || TARGET_AVX512VL
29232 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29233 : && ix86_pre_reload_split ()
29234 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
29235 : STRIP_UNARY (operands[4]))
29236 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29237 : STRIP_UNARY (operands[4]))
29238 : || rtx_equal_p (STRIP_UNARY (operands[1]),
29239 : STRIP_UNARY (operands[3]))
29240 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29241 : STRIP_UNARY (operands[3])))) &&
29242 : #line 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29243 : (TARGET_AVX512F)) &&
29244 : #line 14114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29245 : ( 1)))
29246 : return gen_split_1845 (insn, operands);
29247 : break;
29248 :
29249 : case 16:
29250 : if (((
29251 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29252 : ((32 == 64 || TARGET_AVX512VL
29253 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29254 : && ix86_pre_reload_split ()
29255 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
29256 : STRIP_UNARY (operands[4]))
29257 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29258 : STRIP_UNARY (operands[4]))
29259 : || rtx_equal_p (STRIP_UNARY (operands[1]),
29260 : STRIP_UNARY (operands[3]))
29261 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29262 : STRIP_UNARY (operands[3])))) &&
29263 : #line 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29264 : (TARGET_AVX)) &&
29265 : #line 14114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29266 : ( 1)))
29267 : return gen_split_1872 (insn, operands);
29268 : break;
29269 :
29270 : case 17:
29271 : if ((
29272 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29273 : ((16 == 64 || TARGET_AVX512VL
29274 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29275 : && ix86_pre_reload_split ()
29276 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
29277 : STRIP_UNARY (operands[4]))
29278 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29279 : STRIP_UNARY (operands[4]))
29280 : || rtx_equal_p (STRIP_UNARY (operands[1]),
29281 : STRIP_UNARY (operands[3]))
29282 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29283 : STRIP_UNARY (operands[3])))) &&
29284 : #line 14114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29285 : ( 1)))
29286 : return gen_split_1899 (insn, operands);
29287 : break;
29288 :
29289 : case 18:
29290 : if (((
29291 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29292 : ((64 == 64 || TARGET_AVX512VL
29293 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29294 : && ix86_pre_reload_split ()
29295 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
29296 : STRIP_UNARY (operands[4]))
29297 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29298 : STRIP_UNARY (operands[4]))
29299 : || rtx_equal_p (STRIP_UNARY (operands[1]),
29300 : STRIP_UNARY (operands[3]))
29301 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29302 : STRIP_UNARY (operands[3])))) &&
29303 : #line 347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29304 : (TARGET_AVX512F)) &&
29305 : #line 14114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29306 : ( 1)))
29307 : return gen_split_1926 (insn, operands);
29308 : break;
29309 :
29310 : case 19:
29311 : if (((
29312 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29313 : ((32 == 64 || TARGET_AVX512VL
29314 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29315 : && ix86_pre_reload_split ()
29316 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
29317 : STRIP_UNARY (operands[4]))
29318 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29319 : STRIP_UNARY (operands[4]))
29320 : || rtx_equal_p (STRIP_UNARY (operands[1]),
29321 : STRIP_UNARY (operands[3]))
29322 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29323 : STRIP_UNARY (operands[3])))) &&
29324 : #line 347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29325 : (TARGET_AVX)) &&
29326 : #line 14114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29327 : ( 1)))
29328 : return gen_split_1953 (insn, operands);
29329 : break;
29330 :
29331 : case 20:
29332 : if ((
29333 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29334 : ((16 == 64 || TARGET_AVX512VL
29335 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29336 : && ix86_pre_reload_split ()
29337 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
29338 : STRIP_UNARY (operands[4]))
29339 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29340 : STRIP_UNARY (operands[4]))
29341 : || rtx_equal_p (STRIP_UNARY (operands[1]),
29342 : STRIP_UNARY (operands[3]))
29343 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29344 : STRIP_UNARY (operands[3])))) &&
29345 : #line 14114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29346 : ( 1)))
29347 : return gen_split_1980 (insn, operands);
29348 : break;
29349 :
29350 : case 21:
29351 : if (((
29352 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29353 : ((64 == 64 || TARGET_AVX512VL
29354 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29355 : && ix86_pre_reload_split ()
29356 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
29357 : STRIP_UNARY (operands[4]))
29358 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29359 : STRIP_UNARY (operands[4]))
29360 : || rtx_equal_p (STRIP_UNARY (operands[1]),
29361 : STRIP_UNARY (operands[3]))
29362 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29363 : STRIP_UNARY (operands[3])))) &&
29364 : #line 348 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29365 : (TARGET_AVX512F)) &&
29366 : #line 14114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29367 : ( 1)))
29368 : return gen_split_2007 (insn, operands);
29369 : break;
29370 :
29371 : case 22:
29372 : if (((
29373 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29374 : ((32 == 64 || TARGET_AVX512VL
29375 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29376 : && ix86_pre_reload_split ()
29377 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
29378 : STRIP_UNARY (operands[4]))
29379 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29380 : STRIP_UNARY (operands[4]))
29381 : || rtx_equal_p (STRIP_UNARY (operands[1]),
29382 : STRIP_UNARY (operands[3]))
29383 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29384 : STRIP_UNARY (operands[3])))) &&
29385 : #line 348 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29386 : (TARGET_AVX)) &&
29387 : #line 14114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29388 : ( 1)))
29389 : return gen_split_2034 (insn, operands);
29390 : break;
29391 :
29392 : case 23:
29393 : if ((
29394 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29395 : ((16 == 64 || TARGET_AVX512VL
29396 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29397 : && ix86_pre_reload_split ()
29398 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
29399 : STRIP_UNARY (operands[4]))
29400 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29401 : STRIP_UNARY (operands[4]))
29402 : || rtx_equal_p (STRIP_UNARY (operands[1]),
29403 : STRIP_UNARY (operands[3]))
29404 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29405 : STRIP_UNARY (operands[3])))) &&
29406 : #line 14114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29407 : ( 1)))
29408 : return gen_split_2061 (insn, operands);
29409 : break;
29410 :
29411 : case 24:
29412 : if (((
29413 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29414 : ((64 == 64 || TARGET_AVX512VL
29415 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29416 : && ix86_pre_reload_split ()
29417 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
29418 : STRIP_UNARY (operands[4]))
29419 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29420 : STRIP_UNARY (operands[4]))
29421 : || rtx_equal_p (STRIP_UNARY (operands[1]),
29422 : STRIP_UNARY (operands[3]))
29423 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29424 : STRIP_UNARY (operands[3])))) &&
29425 : #line 345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29426 : (TARGET_AVX512F)) &&
29427 : #line 14114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29428 : ( 1)))
29429 : return gen_split_1767 (insn, operands);
29430 : break;
29431 :
29432 : case 25:
29433 : if (((
29434 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29435 : ((32 == 64 || TARGET_AVX512VL
29436 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29437 : && ix86_pre_reload_split ()
29438 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
29439 : STRIP_UNARY (operands[4]))
29440 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29441 : STRIP_UNARY (operands[4]))
29442 : || rtx_equal_p (STRIP_UNARY (operands[1]),
29443 : STRIP_UNARY (operands[3]))
29444 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29445 : STRIP_UNARY (operands[3])))) &&
29446 : #line 345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29447 : (TARGET_AVX)) &&
29448 : #line 14114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29449 : ( 1)))
29450 : return gen_split_1794 (insn, operands);
29451 : break;
29452 :
29453 : case 26:
29454 : if ((
29455 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29456 : ((16 == 64 || TARGET_AVX512VL
29457 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29458 : && ix86_pre_reload_split ()
29459 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
29460 : STRIP_UNARY (operands[4]))
29461 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29462 : STRIP_UNARY (operands[4]))
29463 : || rtx_equal_p (STRIP_UNARY (operands[1]),
29464 : STRIP_UNARY (operands[3]))
29465 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29466 : STRIP_UNARY (operands[3])))) &&
29467 : #line 14114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29468 : ( 1)))
29469 : return gen_split_1821 (insn, operands);
29470 : break;
29471 :
29472 : case 27:
29473 : if (((
29474 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29475 : ((64 == 64 || TARGET_AVX512VL
29476 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29477 : && ix86_pre_reload_split ()
29478 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
29479 : STRIP_UNARY (operands[4]))
29480 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29481 : STRIP_UNARY (operands[4]))
29482 : || rtx_equal_p (STRIP_UNARY (operands[1]),
29483 : STRIP_UNARY (operands[3]))
29484 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29485 : STRIP_UNARY (operands[3])))) &&
29486 : #line 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29487 : (TARGET_AVX512F)) &&
29488 : #line 14114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29489 : ( 1)))
29490 : return gen_split_1848 (insn, operands);
29491 : break;
29492 :
29493 : case 28:
29494 : if (((
29495 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29496 : ((32 == 64 || TARGET_AVX512VL
29497 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29498 : && ix86_pre_reload_split ()
29499 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
29500 : STRIP_UNARY (operands[4]))
29501 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29502 : STRIP_UNARY (operands[4]))
29503 : || rtx_equal_p (STRIP_UNARY (operands[1]),
29504 : STRIP_UNARY (operands[3]))
29505 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29506 : STRIP_UNARY (operands[3])))) &&
29507 : #line 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29508 : (TARGET_AVX)) &&
29509 : #line 14114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29510 : ( 1)))
29511 : return gen_split_1875 (insn, operands);
29512 : break;
29513 :
29514 : case 29:
29515 : if ((
29516 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29517 : ((16 == 64 || TARGET_AVX512VL
29518 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29519 : && ix86_pre_reload_split ()
29520 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
29521 : STRIP_UNARY (operands[4]))
29522 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29523 : STRIP_UNARY (operands[4]))
29524 : || rtx_equal_p (STRIP_UNARY (operands[1]),
29525 : STRIP_UNARY (operands[3]))
29526 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29527 : STRIP_UNARY (operands[3])))) &&
29528 : #line 14114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29529 : ( 1)))
29530 : return gen_split_1902 (insn, operands);
29531 : break;
29532 :
29533 : case 30:
29534 : if (((
29535 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29536 : ((64 == 64 || TARGET_AVX512VL
29537 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29538 : && ix86_pre_reload_split ()
29539 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
29540 : STRIP_UNARY (operands[4]))
29541 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29542 : STRIP_UNARY (operands[4]))
29543 : || rtx_equal_p (STRIP_UNARY (operands[1]),
29544 : STRIP_UNARY (operands[3]))
29545 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29546 : STRIP_UNARY (operands[3])))) &&
29547 : #line 347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29548 : (TARGET_AVX512F)) &&
29549 : #line 14114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29550 : ( 1)))
29551 : return gen_split_1929 (insn, operands);
29552 : break;
29553 :
29554 : case 31:
29555 : if (((
29556 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29557 : ((32 == 64 || TARGET_AVX512VL
29558 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29559 : && ix86_pre_reload_split ()
29560 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
29561 : STRIP_UNARY (operands[4]))
29562 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29563 : STRIP_UNARY (operands[4]))
29564 : || rtx_equal_p (STRIP_UNARY (operands[1]),
29565 : STRIP_UNARY (operands[3]))
29566 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29567 : STRIP_UNARY (operands[3])))) &&
29568 : #line 347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29569 : (TARGET_AVX)) &&
29570 : #line 14114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29571 : ( 1)))
29572 : return gen_split_1956 (insn, operands);
29573 : break;
29574 :
29575 : case 32:
29576 : if ((
29577 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29578 : ((16 == 64 || TARGET_AVX512VL
29579 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29580 : && ix86_pre_reload_split ()
29581 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
29582 : STRIP_UNARY (operands[4]))
29583 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29584 : STRIP_UNARY (operands[4]))
29585 : || rtx_equal_p (STRIP_UNARY (operands[1]),
29586 : STRIP_UNARY (operands[3]))
29587 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29588 : STRIP_UNARY (operands[3])))) &&
29589 : #line 14114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29590 : ( 1)))
29591 : return gen_split_1983 (insn, operands);
29592 : break;
29593 :
29594 : case 33:
29595 : if (((
29596 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29597 : ((64 == 64 || TARGET_AVX512VL
29598 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29599 : && ix86_pre_reload_split ()
29600 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
29601 : STRIP_UNARY (operands[4]))
29602 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29603 : STRIP_UNARY (operands[4]))
29604 : || rtx_equal_p (STRIP_UNARY (operands[1]),
29605 : STRIP_UNARY (operands[3]))
29606 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29607 : STRIP_UNARY (operands[3])))) &&
29608 : #line 348 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29609 : (TARGET_AVX512F)) &&
29610 : #line 14114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29611 : ( 1)))
29612 : return gen_split_2010 (insn, operands);
29613 : break;
29614 :
29615 : case 34:
29616 : if (((
29617 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29618 : ((32 == 64 || TARGET_AVX512VL
29619 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29620 : && ix86_pre_reload_split ()
29621 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
29622 : STRIP_UNARY (operands[4]))
29623 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29624 : STRIP_UNARY (operands[4]))
29625 : || rtx_equal_p (STRIP_UNARY (operands[1]),
29626 : STRIP_UNARY (operands[3]))
29627 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29628 : STRIP_UNARY (operands[3])))) &&
29629 : #line 348 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29630 : (TARGET_AVX)) &&
29631 : #line 14114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29632 : ( 1)))
29633 : return gen_split_2037 (insn, operands);
29634 : break;
29635 :
29636 : case 35:
29637 : if ((
29638 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29639 : ((16 == 64 || TARGET_AVX512VL
29640 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29641 : && ix86_pre_reload_split ()
29642 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
29643 : STRIP_UNARY (operands[4]))
29644 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29645 : STRIP_UNARY (operands[4]))
29646 : || rtx_equal_p (STRIP_UNARY (operands[1]),
29647 : STRIP_UNARY (operands[3]))
29648 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29649 : STRIP_UNARY (operands[3])))) &&
29650 : #line 14114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29651 : ( 1)))
29652 : return gen_split_2064 (insn, operands);
29653 : break;
29654 :
29655 : case 36:
29656 : if (((
29657 : #line 14271 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29658 : ((64 == 64 || TARGET_AVX512VL
29659 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29660 : && ix86_pre_reload_split ()) &&
29661 : #line 345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29662 : (TARGET_AVX512F)) &&
29663 : #line 14275 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29664 : ( 1)))
29665 : return gen_split_3045 (insn, operands);
29666 : break;
29667 :
29668 : case 37:
29669 : if (((
29670 : #line 14271 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29671 : ((32 == 64 || TARGET_AVX512VL
29672 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29673 : && ix86_pre_reload_split ()) &&
29674 : #line 345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29675 : (TARGET_AVX)) &&
29676 : #line 14275 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29677 : ( 1)))
29678 : return gen_split_3054 (insn, operands);
29679 : break;
29680 :
29681 : case 38:
29682 : if ((
29683 : #line 14271 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29684 : ((16 == 64 || TARGET_AVX512VL
29685 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29686 : && ix86_pre_reload_split ()) &&
29687 : #line 14275 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29688 : ( 1)))
29689 : return gen_split_3063 (insn, operands);
29690 : break;
29691 :
29692 : case 39:
29693 : if (((
29694 : #line 14271 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29695 : ((64 == 64 || TARGET_AVX512VL
29696 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29697 : && ix86_pre_reload_split ()) &&
29698 : #line 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29699 : (TARGET_AVX512F)) &&
29700 : #line 14275 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29701 : ( 1)))
29702 : return gen_split_3072 (insn, operands);
29703 : break;
29704 :
29705 : case 40:
29706 : if (((
29707 : #line 14271 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29708 : ((32 == 64 || TARGET_AVX512VL
29709 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29710 : && ix86_pre_reload_split ()) &&
29711 : #line 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29712 : (TARGET_AVX)) &&
29713 : #line 14275 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29714 : ( 1)))
29715 : return gen_split_3081 (insn, operands);
29716 : break;
29717 :
29718 : case 41:
29719 : if ((
29720 : #line 14271 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29721 : ((16 == 64 || TARGET_AVX512VL
29722 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29723 : && ix86_pre_reload_split ()) &&
29724 : #line 14275 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29725 : ( 1)))
29726 : return gen_split_3090 (insn, operands);
29727 : break;
29728 :
29729 : case 42:
29730 : if (((
29731 : #line 14271 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29732 : ((64 == 64 || TARGET_AVX512VL
29733 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29734 : && ix86_pre_reload_split ()) &&
29735 : #line 347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29736 : (TARGET_AVX512F)) &&
29737 : #line 14275 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29738 : ( 1)))
29739 : return gen_split_3099 (insn, operands);
29740 : break;
29741 :
29742 : case 43:
29743 : if (((
29744 : #line 14271 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29745 : ((32 == 64 || TARGET_AVX512VL
29746 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29747 : && ix86_pre_reload_split ()) &&
29748 : #line 347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29749 : (TARGET_AVX)) &&
29750 : #line 14275 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29751 : ( 1)))
29752 : return gen_split_3108 (insn, operands);
29753 : break;
29754 :
29755 : case 44:
29756 : if ((
29757 : #line 14271 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29758 : ((16 == 64 || TARGET_AVX512VL
29759 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29760 : && ix86_pre_reload_split ()) &&
29761 : #line 14275 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29762 : ( 1)))
29763 : return gen_split_3117 (insn, operands);
29764 : break;
29765 :
29766 : case 45:
29767 : if (((
29768 : #line 14271 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29769 : ((64 == 64 || TARGET_AVX512VL
29770 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29771 : && ix86_pre_reload_split ()) &&
29772 : #line 348 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29773 : (TARGET_AVX512F)) &&
29774 : #line 14275 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29775 : ( 1)))
29776 : return gen_split_3126 (insn, operands);
29777 : break;
29778 :
29779 : case 46:
29780 : if (((
29781 : #line 14271 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29782 : ((32 == 64 || TARGET_AVX512VL
29783 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29784 : && ix86_pre_reload_split ()) &&
29785 : #line 348 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29786 : (TARGET_AVX)) &&
29787 : #line 14275 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29788 : ( 1)))
29789 : return gen_split_3135 (insn, operands);
29790 : break;
29791 :
29792 : case 47:
29793 : if ((
29794 : #line 14271 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29795 : ((16 == 64 || TARGET_AVX512VL
29796 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29797 : && ix86_pre_reload_split ()) &&
29798 : #line 14275 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29799 : ( 1)))
29800 : return gen_split_3144 (insn, operands);
29801 : break;
29802 :
29803 : default:
29804 : break;
29805 : }
29806 : break;
29807 :
29808 : case AND:
29809 : switch (pattern537 (x2))
29810 : {
29811 : case 0:
29812 : if (((
29813 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29814 : ((64 == 64 || TARGET_AVX512VL
29815 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29816 : && ix86_pre_reload_split ()
29817 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
29818 : STRIP_UNARY (operands[4]))
29819 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29820 : STRIP_UNARY (operands[4]))
29821 : || rtx_equal_p (STRIP_UNARY (operands[1]),
29822 : STRIP_UNARY (operands[3]))
29823 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29824 : STRIP_UNARY (operands[3])))) &&
29825 : #line 345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29826 : (TARGET_AVX512F)) &&
29827 : #line 14199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29828 : ( 1)))
29829 : return gen_split_2409 (insn, operands);
29830 : break;
29831 :
29832 : case 1:
29833 : if (((
29834 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29835 : ((32 == 64 || TARGET_AVX512VL
29836 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29837 : && ix86_pre_reload_split ()
29838 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
29839 : STRIP_UNARY (operands[4]))
29840 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29841 : STRIP_UNARY (operands[4]))
29842 : || rtx_equal_p (STRIP_UNARY (operands[1]),
29843 : STRIP_UNARY (operands[3]))
29844 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29845 : STRIP_UNARY (operands[3])))) &&
29846 : #line 345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29847 : (TARGET_AVX)) &&
29848 : #line 14199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29849 : ( 1)))
29850 : return gen_split_2436 (insn, operands);
29851 : break;
29852 :
29853 : case 2:
29854 : if ((
29855 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29856 : ((16 == 64 || TARGET_AVX512VL
29857 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29858 : && ix86_pre_reload_split ()
29859 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
29860 : STRIP_UNARY (operands[4]))
29861 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29862 : STRIP_UNARY (operands[4]))
29863 : || rtx_equal_p (STRIP_UNARY (operands[1]),
29864 : STRIP_UNARY (operands[3]))
29865 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29866 : STRIP_UNARY (operands[3])))) &&
29867 : #line 14199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29868 : ( 1)))
29869 : return gen_split_2463 (insn, operands);
29870 : break;
29871 :
29872 : case 3:
29873 : if (((
29874 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29875 : ((64 == 64 || TARGET_AVX512VL
29876 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29877 : && ix86_pre_reload_split ()
29878 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
29879 : STRIP_UNARY (operands[4]))
29880 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29881 : STRIP_UNARY (operands[4]))
29882 : || rtx_equal_p (STRIP_UNARY (operands[1]),
29883 : STRIP_UNARY (operands[3]))
29884 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29885 : STRIP_UNARY (operands[3])))) &&
29886 : #line 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29887 : (TARGET_AVX512F)) &&
29888 : #line 14199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29889 : ( 1)))
29890 : return gen_split_2490 (insn, operands);
29891 : break;
29892 :
29893 : case 4:
29894 : if (((
29895 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29896 : ((32 == 64 || TARGET_AVX512VL
29897 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29898 : && ix86_pre_reload_split ()
29899 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
29900 : STRIP_UNARY (operands[4]))
29901 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29902 : STRIP_UNARY (operands[4]))
29903 : || rtx_equal_p (STRIP_UNARY (operands[1]),
29904 : STRIP_UNARY (operands[3]))
29905 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29906 : STRIP_UNARY (operands[3])))) &&
29907 : #line 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29908 : (TARGET_AVX)) &&
29909 : #line 14199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29910 : ( 1)))
29911 : return gen_split_2517 (insn, operands);
29912 : break;
29913 :
29914 : case 5:
29915 : if ((
29916 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29917 : ((16 == 64 || TARGET_AVX512VL
29918 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29919 : && ix86_pre_reload_split ()
29920 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
29921 : STRIP_UNARY (operands[4]))
29922 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29923 : STRIP_UNARY (operands[4]))
29924 : || rtx_equal_p (STRIP_UNARY (operands[1]),
29925 : STRIP_UNARY (operands[3]))
29926 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29927 : STRIP_UNARY (operands[3])))) &&
29928 : #line 14199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29929 : ( 1)))
29930 : return gen_split_2544 (insn, operands);
29931 : break;
29932 :
29933 : case 6:
29934 : if (((
29935 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29936 : ((64 == 64 || TARGET_AVX512VL
29937 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29938 : && ix86_pre_reload_split ()
29939 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
29940 : STRIP_UNARY (operands[4]))
29941 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29942 : STRIP_UNARY (operands[4]))
29943 : || rtx_equal_p (STRIP_UNARY (operands[1]),
29944 : STRIP_UNARY (operands[3]))
29945 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29946 : STRIP_UNARY (operands[3])))) &&
29947 : #line 347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29948 : (TARGET_AVX512F)) &&
29949 : #line 14199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29950 : ( 1)))
29951 : return gen_split_2571 (insn, operands);
29952 : break;
29953 :
29954 : case 7:
29955 : if (((
29956 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29957 : ((32 == 64 || TARGET_AVX512VL
29958 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29959 : && ix86_pre_reload_split ()
29960 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
29961 : STRIP_UNARY (operands[4]))
29962 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29963 : STRIP_UNARY (operands[4]))
29964 : || rtx_equal_p (STRIP_UNARY (operands[1]),
29965 : STRIP_UNARY (operands[3]))
29966 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29967 : STRIP_UNARY (operands[3])))) &&
29968 : #line 347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29969 : (TARGET_AVX)) &&
29970 : #line 14199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29971 : ( 1)))
29972 : return gen_split_2598 (insn, operands);
29973 : break;
29974 :
29975 : case 8:
29976 : if ((
29977 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29978 : ((16 == 64 || TARGET_AVX512VL
29979 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29980 : && ix86_pre_reload_split ()
29981 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
29982 : STRIP_UNARY (operands[4]))
29983 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29984 : STRIP_UNARY (operands[4]))
29985 : || rtx_equal_p (STRIP_UNARY (operands[1]),
29986 : STRIP_UNARY (operands[3]))
29987 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29988 : STRIP_UNARY (operands[3])))) &&
29989 : #line 14199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29990 : ( 1)))
29991 : return gen_split_2625 (insn, operands);
29992 : break;
29993 :
29994 : case 9:
29995 : if (((
29996 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29997 : ((64 == 64 || TARGET_AVX512VL
29998 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29999 : && ix86_pre_reload_split ()
30000 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
30001 : STRIP_UNARY (operands[4]))
30002 : || rtx_equal_p (STRIP_UNARY (operands[2]),
30003 : STRIP_UNARY (operands[4]))
30004 : || rtx_equal_p (STRIP_UNARY (operands[1]),
30005 : STRIP_UNARY (operands[3]))
30006 : || rtx_equal_p (STRIP_UNARY (operands[2]),
30007 : STRIP_UNARY (operands[3])))) &&
30008 : #line 348 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30009 : (TARGET_AVX512F)) &&
30010 : #line 14199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30011 : ( 1)))
30012 : return gen_split_2652 (insn, operands);
30013 : break;
30014 :
30015 : case 10:
30016 : if (((
30017 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30018 : ((32 == 64 || TARGET_AVX512VL
30019 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
30020 : && ix86_pre_reload_split ()
30021 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
30022 : STRIP_UNARY (operands[4]))
30023 : || rtx_equal_p (STRIP_UNARY (operands[2]),
30024 : STRIP_UNARY (operands[4]))
30025 : || rtx_equal_p (STRIP_UNARY (operands[1]),
30026 : STRIP_UNARY (operands[3]))
30027 : || rtx_equal_p (STRIP_UNARY (operands[2]),
30028 : STRIP_UNARY (operands[3])))) &&
30029 : #line 348 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30030 : (TARGET_AVX)) &&
30031 : #line 14199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30032 : ( 1)))
30033 : return gen_split_2679 (insn, operands);
30034 : break;
30035 :
30036 : case 11:
30037 : if ((
30038 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30039 : ((16 == 64 || TARGET_AVX512VL
30040 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
30041 : && ix86_pre_reload_split ()
30042 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
30043 : STRIP_UNARY (operands[4]))
30044 : || rtx_equal_p (STRIP_UNARY (operands[2]),
30045 : STRIP_UNARY (operands[4]))
30046 : || rtx_equal_p (STRIP_UNARY (operands[1]),
30047 : STRIP_UNARY (operands[3]))
30048 : || rtx_equal_p (STRIP_UNARY (operands[2]),
30049 : STRIP_UNARY (operands[3])))) &&
30050 : #line 14199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30051 : ( 1)))
30052 : return gen_split_2706 (insn, operands);
30053 : break;
30054 :
30055 : default:
30056 : break;
30057 : }
30058 : break;
30059 :
30060 : case IOR:
30061 : switch (pattern537 (x2))
30062 : {
30063 : case 0:
30064 : if (((
30065 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30066 : ((64 == 64 || TARGET_AVX512VL
30067 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
30068 : && ix86_pre_reload_split ()
30069 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
30070 : STRIP_UNARY (operands[4]))
30071 : || rtx_equal_p (STRIP_UNARY (operands[2]),
30072 : STRIP_UNARY (operands[4]))
30073 : || rtx_equal_p (STRIP_UNARY (operands[1]),
30074 : STRIP_UNARY (operands[3]))
30075 : || rtx_equal_p (STRIP_UNARY (operands[2]),
30076 : STRIP_UNARY (operands[3])))) &&
30077 : #line 345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30078 : (TARGET_AVX512F)) &&
30079 : #line 14199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30080 : ( 1)))
30081 : return gen_split_2412 (insn, operands);
30082 : break;
30083 :
30084 : case 1:
30085 : if (((
30086 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30087 : ((32 == 64 || TARGET_AVX512VL
30088 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
30089 : && ix86_pre_reload_split ()
30090 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
30091 : STRIP_UNARY (operands[4]))
30092 : || rtx_equal_p (STRIP_UNARY (operands[2]),
30093 : STRIP_UNARY (operands[4]))
30094 : || rtx_equal_p (STRIP_UNARY (operands[1]),
30095 : STRIP_UNARY (operands[3]))
30096 : || rtx_equal_p (STRIP_UNARY (operands[2]),
30097 : STRIP_UNARY (operands[3])))) &&
30098 : #line 345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30099 : (TARGET_AVX)) &&
30100 : #line 14199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30101 : ( 1)))
30102 : return gen_split_2439 (insn, operands);
30103 : break;
30104 :
30105 : case 2:
30106 : if ((
30107 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30108 : ((16 == 64 || TARGET_AVX512VL
30109 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
30110 : && ix86_pre_reload_split ()
30111 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
30112 : STRIP_UNARY (operands[4]))
30113 : || rtx_equal_p (STRIP_UNARY (operands[2]),
30114 : STRIP_UNARY (operands[4]))
30115 : || rtx_equal_p (STRIP_UNARY (operands[1]),
30116 : STRIP_UNARY (operands[3]))
30117 : || rtx_equal_p (STRIP_UNARY (operands[2]),
30118 : STRIP_UNARY (operands[3])))) &&
30119 : #line 14199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30120 : ( 1)))
30121 : return gen_split_2466 (insn, operands);
30122 : break;
30123 :
30124 : case 3:
30125 : if (((
30126 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30127 : ((64 == 64 || TARGET_AVX512VL
30128 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
30129 : && ix86_pre_reload_split ()
30130 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
30131 : STRIP_UNARY (operands[4]))
30132 : || rtx_equal_p (STRIP_UNARY (operands[2]),
30133 : STRIP_UNARY (operands[4]))
30134 : || rtx_equal_p (STRIP_UNARY (operands[1]),
30135 : STRIP_UNARY (operands[3]))
30136 : || rtx_equal_p (STRIP_UNARY (operands[2]),
30137 : STRIP_UNARY (operands[3])))) &&
30138 : #line 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30139 : (TARGET_AVX512F)) &&
30140 : #line 14199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30141 : ( 1)))
30142 : return gen_split_2493 (insn, operands);
30143 : break;
30144 :
30145 : case 4:
30146 : if (((
30147 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30148 : ((32 == 64 || TARGET_AVX512VL
30149 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
30150 : && ix86_pre_reload_split ()
30151 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
30152 : STRIP_UNARY (operands[4]))
30153 : || rtx_equal_p (STRIP_UNARY (operands[2]),
30154 : STRIP_UNARY (operands[4]))
30155 : || rtx_equal_p (STRIP_UNARY (operands[1]),
30156 : STRIP_UNARY (operands[3]))
30157 : || rtx_equal_p (STRIP_UNARY (operands[2]),
30158 : STRIP_UNARY (operands[3])))) &&
30159 : #line 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30160 : (TARGET_AVX)) &&
30161 : #line 14199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30162 : ( 1)))
30163 : return gen_split_2520 (insn, operands);
30164 : break;
30165 :
30166 : case 5:
30167 : if ((
30168 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30169 : ((16 == 64 || TARGET_AVX512VL
30170 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
30171 : && ix86_pre_reload_split ()
30172 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
30173 : STRIP_UNARY (operands[4]))
30174 : || rtx_equal_p (STRIP_UNARY (operands[2]),
30175 : STRIP_UNARY (operands[4]))
30176 : || rtx_equal_p (STRIP_UNARY (operands[1]),
30177 : STRIP_UNARY (operands[3]))
30178 : || rtx_equal_p (STRIP_UNARY (operands[2]),
30179 : STRIP_UNARY (operands[3])))) &&
30180 : #line 14199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30181 : ( 1)))
30182 : return gen_split_2547 (insn, operands);
30183 : break;
30184 :
30185 : case 6:
30186 : if (((
30187 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30188 : ((64 == 64 || TARGET_AVX512VL
30189 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
30190 : && ix86_pre_reload_split ()
30191 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
30192 : STRIP_UNARY (operands[4]))
30193 : || rtx_equal_p (STRIP_UNARY (operands[2]),
30194 : STRIP_UNARY (operands[4]))
30195 : || rtx_equal_p (STRIP_UNARY (operands[1]),
30196 : STRIP_UNARY (operands[3]))
30197 : || rtx_equal_p (STRIP_UNARY (operands[2]),
30198 : STRIP_UNARY (operands[3])))) &&
30199 : #line 347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30200 : (TARGET_AVX512F)) &&
30201 : #line 14199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30202 : ( 1)))
30203 : return gen_split_2574 (insn, operands);
30204 : break;
30205 :
30206 : case 7:
30207 : if (((
30208 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30209 : ((32 == 64 || TARGET_AVX512VL
30210 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
30211 : && ix86_pre_reload_split ()
30212 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
30213 : STRIP_UNARY (operands[4]))
30214 : || rtx_equal_p (STRIP_UNARY (operands[2]),
30215 : STRIP_UNARY (operands[4]))
30216 : || rtx_equal_p (STRIP_UNARY (operands[1]),
30217 : STRIP_UNARY (operands[3]))
30218 : || rtx_equal_p (STRIP_UNARY (operands[2]),
30219 : STRIP_UNARY (operands[3])))) &&
30220 : #line 347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30221 : (TARGET_AVX)) &&
30222 : #line 14199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30223 : ( 1)))
30224 : return gen_split_2601 (insn, operands);
30225 : break;
30226 :
30227 : case 8:
30228 : if ((
30229 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30230 : ((16 == 64 || TARGET_AVX512VL
30231 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
30232 : && ix86_pre_reload_split ()
30233 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
30234 : STRIP_UNARY (operands[4]))
30235 : || rtx_equal_p (STRIP_UNARY (operands[2]),
30236 : STRIP_UNARY (operands[4]))
30237 : || rtx_equal_p (STRIP_UNARY (operands[1]),
30238 : STRIP_UNARY (operands[3]))
30239 : || rtx_equal_p (STRIP_UNARY (operands[2]),
30240 : STRIP_UNARY (operands[3])))) &&
30241 : #line 14199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30242 : ( 1)))
30243 : return gen_split_2628 (insn, operands);
30244 : break;
30245 :
30246 : case 9:
30247 : if (((
30248 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30249 : ((64 == 64 || TARGET_AVX512VL
30250 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
30251 : && ix86_pre_reload_split ()
30252 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
30253 : STRIP_UNARY (operands[4]))
30254 : || rtx_equal_p (STRIP_UNARY (operands[2]),
30255 : STRIP_UNARY (operands[4]))
30256 : || rtx_equal_p (STRIP_UNARY (operands[1]),
30257 : STRIP_UNARY (operands[3]))
30258 : || rtx_equal_p (STRIP_UNARY (operands[2]),
30259 : STRIP_UNARY (operands[3])))) &&
30260 : #line 348 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30261 : (TARGET_AVX512F)) &&
30262 : #line 14199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30263 : ( 1)))
30264 : return gen_split_2655 (insn, operands);
30265 : break;
30266 :
30267 : case 10:
30268 : if (((
30269 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30270 : ((32 == 64 || TARGET_AVX512VL
30271 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
30272 : && ix86_pre_reload_split ()
30273 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
30274 : STRIP_UNARY (operands[4]))
30275 : || rtx_equal_p (STRIP_UNARY (operands[2]),
30276 : STRIP_UNARY (operands[4]))
30277 : || rtx_equal_p (STRIP_UNARY (operands[1]),
30278 : STRIP_UNARY (operands[3]))
30279 : || rtx_equal_p (STRIP_UNARY (operands[2]),
30280 : STRIP_UNARY (operands[3])))) &&
30281 : #line 348 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30282 : (TARGET_AVX)) &&
30283 : #line 14199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30284 : ( 1)))
30285 : return gen_split_2682 (insn, operands);
30286 : break;
30287 :
30288 : case 11:
30289 : if ((
30290 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30291 : ((16 == 64 || TARGET_AVX512VL
30292 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
30293 : && ix86_pre_reload_split ()
30294 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
30295 : STRIP_UNARY (operands[4]))
30296 : || rtx_equal_p (STRIP_UNARY (operands[2]),
30297 : STRIP_UNARY (operands[4]))
30298 : || rtx_equal_p (STRIP_UNARY (operands[1]),
30299 : STRIP_UNARY (operands[3]))
30300 : || rtx_equal_p (STRIP_UNARY (operands[2]),
30301 : STRIP_UNARY (operands[3])))) &&
30302 : #line 14199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30303 : ( 1)))
30304 : return gen_split_2709 (insn, operands);
30305 : break;
30306 :
30307 : default:
30308 : break;
30309 : }
30310 : break;
30311 :
30312 : case XOR:
30313 : switch (pattern537 (x2))
30314 : {
30315 : case 0:
30316 : if (((
30317 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30318 : ((64 == 64 || TARGET_AVX512VL
30319 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
30320 : && ix86_pre_reload_split ()
30321 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
30322 : STRIP_UNARY (operands[4]))
30323 : || rtx_equal_p (STRIP_UNARY (operands[2]),
30324 : STRIP_UNARY (operands[4]))
30325 : || rtx_equal_p (STRIP_UNARY (operands[1]),
30326 : STRIP_UNARY (operands[3]))
30327 : || rtx_equal_p (STRIP_UNARY (operands[2]),
30328 : STRIP_UNARY (operands[3])))) &&
30329 : #line 345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30330 : (TARGET_AVX512F)) &&
30331 : #line 14199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30332 : ( 1)))
30333 : return gen_split_2415 (insn, operands);
30334 : break;
30335 :
30336 : case 1:
30337 : if (((
30338 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30339 : ((32 == 64 || TARGET_AVX512VL
30340 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
30341 : && ix86_pre_reload_split ()
30342 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
30343 : STRIP_UNARY (operands[4]))
30344 : || rtx_equal_p (STRIP_UNARY (operands[2]),
30345 : STRIP_UNARY (operands[4]))
30346 : || rtx_equal_p (STRIP_UNARY (operands[1]),
30347 : STRIP_UNARY (operands[3]))
30348 : || rtx_equal_p (STRIP_UNARY (operands[2]),
30349 : STRIP_UNARY (operands[3])))) &&
30350 : #line 345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30351 : (TARGET_AVX)) &&
30352 : #line 14199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30353 : ( 1)))
30354 : return gen_split_2442 (insn, operands);
30355 : break;
30356 :
30357 : case 2:
30358 : if ((
30359 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30360 : ((16 == 64 || TARGET_AVX512VL
30361 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
30362 : && ix86_pre_reload_split ()
30363 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
30364 : STRIP_UNARY (operands[4]))
30365 : || rtx_equal_p (STRIP_UNARY (operands[2]),
30366 : STRIP_UNARY (operands[4]))
30367 : || rtx_equal_p (STRIP_UNARY (operands[1]),
30368 : STRIP_UNARY (operands[3]))
30369 : || rtx_equal_p (STRIP_UNARY (operands[2]),
30370 : STRIP_UNARY (operands[3])))) &&
30371 : #line 14199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30372 : ( 1)))
30373 : return gen_split_2469 (insn, operands);
30374 : break;
30375 :
30376 : case 3:
30377 : if (((
30378 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30379 : ((64 == 64 || TARGET_AVX512VL
30380 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
30381 : && ix86_pre_reload_split ()
30382 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
30383 : STRIP_UNARY (operands[4]))
30384 : || rtx_equal_p (STRIP_UNARY (operands[2]),
30385 : STRIP_UNARY (operands[4]))
30386 : || rtx_equal_p (STRIP_UNARY (operands[1]),
30387 : STRIP_UNARY (operands[3]))
30388 : || rtx_equal_p (STRIP_UNARY (operands[2]),
30389 : STRIP_UNARY (operands[3])))) &&
30390 : #line 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30391 : (TARGET_AVX512F)) &&
30392 : #line 14199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30393 : ( 1)))
30394 : return gen_split_2496 (insn, operands);
30395 : break;
30396 :
30397 : case 4:
30398 : if (((
30399 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30400 : ((32 == 64 || TARGET_AVX512VL
30401 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
30402 : && ix86_pre_reload_split ()
30403 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
30404 : STRIP_UNARY (operands[4]))
30405 : || rtx_equal_p (STRIP_UNARY (operands[2]),
30406 : STRIP_UNARY (operands[4]))
30407 : || rtx_equal_p (STRIP_UNARY (operands[1]),
30408 : STRIP_UNARY (operands[3]))
30409 : || rtx_equal_p (STRIP_UNARY (operands[2]),
30410 : STRIP_UNARY (operands[3])))) &&
30411 : #line 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30412 : (TARGET_AVX)) &&
30413 : #line 14199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30414 : ( 1)))
30415 : return gen_split_2523 (insn, operands);
30416 : break;
30417 :
30418 : case 5:
30419 : if ((
30420 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30421 : ((16 == 64 || TARGET_AVX512VL
30422 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
30423 : && ix86_pre_reload_split ()
30424 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
30425 : STRIP_UNARY (operands[4]))
30426 : || rtx_equal_p (STRIP_UNARY (operands[2]),
30427 : STRIP_UNARY (operands[4]))
30428 : || rtx_equal_p (STRIP_UNARY (operands[1]),
30429 : STRIP_UNARY (operands[3]))
30430 : || rtx_equal_p (STRIP_UNARY (operands[2]),
30431 : STRIP_UNARY (operands[3])))) &&
30432 : #line 14199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30433 : ( 1)))
30434 : return gen_split_2550 (insn, operands);
30435 : break;
30436 :
30437 : case 6:
30438 : if (((
30439 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30440 : ((64 == 64 || TARGET_AVX512VL
30441 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
30442 : && ix86_pre_reload_split ()
30443 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
30444 : STRIP_UNARY (operands[4]))
30445 : || rtx_equal_p (STRIP_UNARY (operands[2]),
30446 : STRIP_UNARY (operands[4]))
30447 : || rtx_equal_p (STRIP_UNARY (operands[1]),
30448 : STRIP_UNARY (operands[3]))
30449 : || rtx_equal_p (STRIP_UNARY (operands[2]),
30450 : STRIP_UNARY (operands[3])))) &&
30451 : #line 347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30452 : (TARGET_AVX512F)) &&
30453 : #line 14199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30454 : ( 1)))
30455 : return gen_split_2577 (insn, operands);
30456 : break;
30457 :
30458 : case 7:
30459 : if (((
30460 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30461 : ((32 == 64 || TARGET_AVX512VL
30462 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
30463 : && ix86_pre_reload_split ()
30464 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
30465 : STRIP_UNARY (operands[4]))
30466 : || rtx_equal_p (STRIP_UNARY (operands[2]),
30467 : STRIP_UNARY (operands[4]))
30468 : || rtx_equal_p (STRIP_UNARY (operands[1]),
30469 : STRIP_UNARY (operands[3]))
30470 : || rtx_equal_p (STRIP_UNARY (operands[2]),
30471 : STRIP_UNARY (operands[3])))) &&
30472 : #line 347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30473 : (TARGET_AVX)) &&
30474 : #line 14199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30475 : ( 1)))
30476 : return gen_split_2604 (insn, operands);
30477 : break;
30478 :
30479 : case 8:
30480 : if ((
30481 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30482 : ((16 == 64 || TARGET_AVX512VL
30483 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
30484 : && ix86_pre_reload_split ()
30485 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
30486 : STRIP_UNARY (operands[4]))
30487 : || rtx_equal_p (STRIP_UNARY (operands[2]),
30488 : STRIP_UNARY (operands[4]))
30489 : || rtx_equal_p (STRIP_UNARY (operands[1]),
30490 : STRIP_UNARY (operands[3]))
30491 : || rtx_equal_p (STRIP_UNARY (operands[2]),
30492 : STRIP_UNARY (operands[3])))) &&
30493 : #line 14199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30494 : ( 1)))
30495 : return gen_split_2631 (insn, operands);
30496 : break;
30497 :
30498 : case 9:
30499 : if (((
30500 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30501 : ((64 == 64 || TARGET_AVX512VL
30502 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
30503 : && ix86_pre_reload_split ()
30504 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
30505 : STRIP_UNARY (operands[4]))
30506 : || rtx_equal_p (STRIP_UNARY (operands[2]),
30507 : STRIP_UNARY (operands[4]))
30508 : || rtx_equal_p (STRIP_UNARY (operands[1]),
30509 : STRIP_UNARY (operands[3]))
30510 : || rtx_equal_p (STRIP_UNARY (operands[2]),
30511 : STRIP_UNARY (operands[3])))) &&
30512 : #line 348 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30513 : (TARGET_AVX512F)) &&
30514 : #line 14199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30515 : ( 1)))
30516 : return gen_split_2658 (insn, operands);
30517 : break;
30518 :
30519 : case 10:
30520 : if (((
30521 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30522 : ((32 == 64 || TARGET_AVX512VL
30523 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
30524 : && ix86_pre_reload_split ()
30525 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
30526 : STRIP_UNARY (operands[4]))
30527 : || rtx_equal_p (STRIP_UNARY (operands[2]),
30528 : STRIP_UNARY (operands[4]))
30529 : || rtx_equal_p (STRIP_UNARY (operands[1]),
30530 : STRIP_UNARY (operands[3]))
30531 : || rtx_equal_p (STRIP_UNARY (operands[2]),
30532 : STRIP_UNARY (operands[3])))) &&
30533 : #line 348 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30534 : (TARGET_AVX)) &&
30535 : #line 14199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30536 : ( 1)))
30537 : return gen_split_2685 (insn, operands);
30538 : break;
30539 :
30540 : case 11:
30541 : if ((
30542 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30543 : ((16 == 64 || TARGET_AVX512VL
30544 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
30545 : && ix86_pre_reload_split ()
30546 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
30547 : STRIP_UNARY (operands[4]))
30548 : || rtx_equal_p (STRIP_UNARY (operands[2]),
30549 : STRIP_UNARY (operands[4]))
30550 : || rtx_equal_p (STRIP_UNARY (operands[1]),
30551 : STRIP_UNARY (operands[3]))
30552 : || rtx_equal_p (STRIP_UNARY (operands[2]),
30553 : STRIP_UNARY (operands[3])))) &&
30554 : #line 14199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30555 : ( 1)))
30556 : return gen_split_2712 (insn, operands);
30557 : break;
30558 :
30559 : default:
30560 : break;
30561 : }
30562 : break;
30563 :
30564 : default:
30565 : break;
30566 : }
30567 : break;
30568 :
30569 : case REG:
30570 : case SUBREG:
30571 : case MEM:
30572 : case VEC_DUPLICATE:
30573 : operands[1] = x3;
30574 : x5 = XEXP (x2, 1);
30575 : operands[2] = x5;
30576 : switch (GET_MODE (operands[0]))
30577 : {
30578 : case E_V16SImode:
30579 : if (pattern934 (x2,
30580 : E_V16SImode) == 0
30581 : && ((
30582 : #line 18698 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30583 : (TARGET_AVX512F
30584 : && (!false
30585 : || SImode == SImode
30586 : || SImode == DImode)) &&
30587 : #line 556 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30588 : (TARGET_AVX512F)) &&
30589 : #line 18708 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30590 : ( reload_completed && !REG_P (operands[1]) && !false
30591 : && optimize_insn_for_speed_p ())))
30592 : return gen_split_3418 (insn, operands);
30593 : break;
30594 :
30595 : case E_V8DImode:
30596 : if (pattern934 (x2,
30597 : E_V8DImode) == 0
30598 : && ((
30599 : #line 18698 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30600 : (TARGET_AVX512F
30601 : && (!false
30602 : || DImode == SImode
30603 : || DImode == DImode)) &&
30604 : #line 556 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30605 : (TARGET_AVX512F)) &&
30606 : #line 18708 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30607 : ( reload_completed && !REG_P (operands[1]) && !false
30608 : && optimize_insn_for_speed_p ())))
30609 : return gen_split_3419 (insn, operands);
30610 : break;
30611 :
30612 : case E_V64QImode:
30613 : if (pattern934 (x2,
30614 : E_V64QImode) == 0
30615 : && ((
30616 : #line 18698 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30617 : (TARGET_AVX512F
30618 : && (!false
30619 : || QImode == SImode
30620 : || QImode == DImode)) &&
30621 : #line 557 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30622 : (TARGET_AVX512BW)) &&
30623 : #line 18708 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30624 : ( reload_completed && !REG_P (operands[1]) && !false
30625 : && optimize_insn_for_speed_p ())))
30626 : return gen_split_3420 (insn, operands);
30627 : break;
30628 :
30629 : case E_V32QImode:
30630 : if (pattern934 (x2,
30631 : E_V32QImode) == 0
30632 : && ((
30633 : #line 18698 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30634 : (TARGET_AVX512F
30635 : && (!false
30636 : || QImode == SImode
30637 : || QImode == DImode)) &&
30638 : #line 557 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30639 : (TARGET_AVX)) &&
30640 : #line 18708 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30641 : ( reload_completed && !REG_P (operands[1]) && !false
30642 : && optimize_insn_for_speed_p ())))
30643 : return gen_split_3421 (insn, operands);
30644 : break;
30645 :
30646 : case E_V16QImode:
30647 : if (pattern934 (x2,
30648 : E_V16QImode) == 0
30649 : && (
30650 : #line 18698 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30651 : (TARGET_AVX512F
30652 : && (!false
30653 : || QImode == SImode
30654 : || QImode == DImode)) &&
30655 : #line 18708 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30656 : ( reload_completed && !REG_P (operands[1]) && !false
30657 : && optimize_insn_for_speed_p ())))
30658 : return gen_split_3422 (insn, operands);
30659 : break;
30660 :
30661 : case E_V32HImode:
30662 : if (pattern934 (x2,
30663 : E_V32HImode) == 0
30664 : && ((
30665 : #line 18698 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30666 : (TARGET_AVX512F
30667 : && (!false
30668 : || HImode == SImode
30669 : || HImode == DImode)) &&
30670 : #line 558 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30671 : (TARGET_AVX512BW)) &&
30672 : #line 18708 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30673 : ( reload_completed && !REG_P (operands[1]) && !false
30674 : && optimize_insn_for_speed_p ())))
30675 : return gen_split_3423 (insn, operands);
30676 : break;
30677 :
30678 : case E_V16HImode:
30679 : if (pattern934 (x2,
30680 : E_V16HImode) == 0
30681 : && ((
30682 : #line 18698 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30683 : (TARGET_AVX512F
30684 : && (!false
30685 : || HImode == SImode
30686 : || HImode == DImode)) &&
30687 : #line 558 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30688 : (TARGET_AVX)) &&
30689 : #line 18708 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30690 : ( reload_completed && !REG_P (operands[1]) && !false
30691 : && optimize_insn_for_speed_p ())))
30692 : return gen_split_3424 (insn, operands);
30693 : break;
30694 :
30695 : case E_V8HImode:
30696 : if (pattern934 (x2,
30697 : E_V8HImode) == 0
30698 : && (
30699 : #line 18698 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30700 : (TARGET_AVX512F
30701 : && (!false
30702 : || HImode == SImode
30703 : || HImode == DImode)) &&
30704 : #line 18708 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30705 : ( reload_completed && !REG_P (operands[1]) && !false
30706 : && optimize_insn_for_speed_p ())))
30707 : return gen_split_3425 (insn, operands);
30708 : break;
30709 :
30710 : case E_V8SImode:
30711 : if (pattern934 (x2,
30712 : E_V8SImode) == 0
30713 : && ((
30714 : #line 18698 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30715 : (TARGET_AVX512F
30716 : && (!false
30717 : || SImode == SImode
30718 : || SImode == DImode)) &&
30719 : #line 559 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30720 : (TARGET_AVX)) &&
30721 : #line 18708 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30722 : ( reload_completed && !REG_P (operands[1]) && !false
30723 : && optimize_insn_for_speed_p ())))
30724 : return gen_split_3426 (insn, operands);
30725 : break;
30726 :
30727 : case E_V4SImode:
30728 : if (pattern934 (x2,
30729 : E_V4SImode) == 0
30730 : && (
30731 : #line 18698 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30732 : (TARGET_AVX512F
30733 : && (!false
30734 : || SImode == SImode
30735 : || SImode == DImode)) &&
30736 : #line 18708 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30737 : ( reload_completed && !REG_P (operands[1]) && !false
30738 : && optimize_insn_for_speed_p ())))
30739 : return gen_split_3427 (insn, operands);
30740 : break;
30741 :
30742 : case E_V4DImode:
30743 : if (pattern934 (x2,
30744 : E_V4DImode) == 0
30745 : && ((
30746 : #line 18698 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30747 : (TARGET_AVX512F
30748 : && (!false
30749 : || DImode == SImode
30750 : || DImode == DImode)) &&
30751 : #line 560 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30752 : (TARGET_AVX)) &&
30753 : #line 18708 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30754 : ( reload_completed && !REG_P (operands[1]) && !false
30755 : && optimize_insn_for_speed_p ())))
30756 : return gen_split_3428 (insn, operands);
30757 : break;
30758 :
30759 : case E_V2DImode:
30760 : if (pattern934 (x2,
30761 : E_V2DImode) == 0
30762 : && (
30763 : #line 18698 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30764 : (TARGET_AVX512F
30765 : && (!false
30766 : || DImode == SImode
30767 : || DImode == DImode)) &&
30768 : #line 18708 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30769 : ( reload_completed && !REG_P (operands[1]) && !false
30770 : && optimize_insn_for_speed_p ())))
30771 : return gen_split_3429 (insn, operands);
30772 : break;
30773 :
30774 : default:
30775 : break;
30776 : }
30777 : if (GET_CODE (x3) == VEC_DUPLICATE)
30778 : {
30779 : switch (pattern605 (x2))
30780 : {
30781 : case 0:
30782 : if ((
30783 : #line 19001 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30784 : (64 == 64 || TARGET_AVX512VL
30785 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256)) &&
30786 : #line 556 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30787 : (TARGET_AVX512F)))
30788 : return gen_split_3462 (insn, operands);
30789 : break;
30790 :
30791 : case 1:
30792 : if ((
30793 : #line 19001 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30794 : (64 == 64 || TARGET_AVX512VL
30795 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256)) &&
30796 : #line 556 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30797 : (TARGET_AVX512F)))
30798 : return gen_split_3463 (insn, operands);
30799 : break;
30800 :
30801 : case 2:
30802 : if ((
30803 : #line 19001 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30804 : (64 == 64 || TARGET_AVX512VL
30805 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256)) &&
30806 : #line 557 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30807 : (TARGET_AVX512BW)))
30808 : return gen_split_3464 (insn, operands);
30809 : break;
30810 :
30811 : case 3:
30812 : if ((
30813 : #line 19001 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30814 : (32 == 64 || TARGET_AVX512VL
30815 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256)) &&
30816 : #line 557 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30817 : (TARGET_AVX)))
30818 : return gen_split_3465 (insn, operands);
30819 : break;
30820 :
30821 : case 4:
30822 : if (
30823 : #line 19001 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30824 : (16 == 64 || TARGET_AVX512VL
30825 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256)))
30826 : return gen_split_3466 (insn, operands);
30827 : break;
30828 :
30829 : case 5:
30830 : if ((
30831 : #line 19001 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30832 : (64 == 64 || TARGET_AVX512VL
30833 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256)) &&
30834 : #line 558 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30835 : (TARGET_AVX512BW)))
30836 : return gen_split_3467 (insn, operands);
30837 : break;
30838 :
30839 : case 6:
30840 : if ((
30841 : #line 19001 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30842 : (32 == 64 || TARGET_AVX512VL
30843 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256)) &&
30844 : #line 558 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30845 : (TARGET_AVX)))
30846 : return gen_split_3468 (insn, operands);
30847 : break;
30848 :
30849 : case 7:
30850 : if (
30851 : #line 19001 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30852 : (16 == 64 || TARGET_AVX512VL
30853 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256)))
30854 : return gen_split_3469 (insn, operands);
30855 : break;
30856 :
30857 : case 8:
30858 : if ((
30859 : #line 19001 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30860 : (32 == 64 || TARGET_AVX512VL
30861 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256)) &&
30862 : #line 559 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30863 : (TARGET_AVX)))
30864 : return gen_split_3470 (insn, operands);
30865 : break;
30866 :
30867 : case 9:
30868 : if (
30869 : #line 19001 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30870 : (16 == 64 || TARGET_AVX512VL
30871 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256)))
30872 : return gen_split_3471 (insn, operands);
30873 : break;
30874 :
30875 : case 10:
30876 : if ((
30877 : #line 19001 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30878 : (32 == 64 || TARGET_AVX512VL
30879 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256)) &&
30880 : #line 560 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30881 : (TARGET_AVX)))
30882 : return gen_split_3472 (insn, operands);
30883 : break;
30884 :
30885 : case 11:
30886 : if (
30887 : #line 19001 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30888 : (16 == 64 || TARGET_AVX512VL
30889 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256)))
30890 : return gen_split_3473 (insn, operands);
30891 : break;
30892 :
30893 : default:
30894 : break;
30895 : }
30896 : }
30897 : break;
30898 :
30899 : default:
30900 : break;
30901 : }
30902 : break;
30903 :
30904 : default:
30905 : break;
30906 : }
30907 : operands[1] = x2;
30908 : switch (pattern204 ())
30909 : {
30910 : case 0:
30911 : if (((
30912 : #line 14072 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30913 : ((64 == 64 || TARGET_AVX512VL
30914 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
30915 : && ix86_pre_reload_split ()) &&
30916 : #line 349 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30917 : (TARGET_AVX512F)) &&
30918 : #line 14076 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30919 : ( 1)))
30920 : return gen_split_1729 (insn, operands);
30921 : break;
30922 :
30923 : case 1:
30924 : if (((
30925 : #line 14072 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30926 : ((32 == 64 || TARGET_AVX512VL
30927 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
30928 : && ix86_pre_reload_split ()) &&
30929 : #line 349 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30930 : (TARGET_AVX)) &&
30931 : #line 14076 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30932 : ( 1)))
30933 : return gen_split_1730 (insn, operands);
30934 : break;
30935 :
30936 : case 2:
30937 : if ((
30938 : #line 14072 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30939 : ((16 == 64 || TARGET_AVX512VL
30940 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
30941 : && ix86_pre_reload_split ()) &&
30942 : #line 14076 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30943 : ( 1)))
30944 : return gen_split_1731 (insn, operands);
30945 : break;
30946 :
30947 : case 3:
30948 : if (((
30949 : #line 14072 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30950 : ((64 == 64 || TARGET_AVX512VL
30951 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
30952 : && ix86_pre_reload_split ()) &&
30953 : #line 350 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30954 : (TARGET_AVX512F)) &&
30955 : #line 14076 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30956 : ( 1)))
30957 : return gen_split_1732 (insn, operands);
30958 : break;
30959 :
30960 : case 4:
30961 : if (((
30962 : #line 14072 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30963 : ((32 == 64 || TARGET_AVX512VL
30964 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
30965 : && ix86_pre_reload_split ()) &&
30966 : #line 350 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30967 : (TARGET_AVX)) &&
30968 : #line 14076 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30969 : ( 1)))
30970 : return gen_split_1733 (insn, operands);
30971 : break;
30972 :
30973 : case 5:
30974 : if ((
30975 : #line 14072 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30976 : ((16 == 64 || TARGET_AVX512VL
30977 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
30978 : && ix86_pre_reload_split ()) &&
30979 : #line 14076 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30980 : ( 1)))
30981 : return gen_split_1734 (insn, operands);
30982 : break;
30983 :
30984 : case 6:
30985 : if (((
30986 : #line 14072 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30987 : ((64 == 64 || TARGET_AVX512VL
30988 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
30989 : && ix86_pre_reload_split ()) &&
30990 : #line 351 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30991 : (TARGET_AVX512F)) &&
30992 : #line 14076 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30993 : ( 1)))
30994 : return gen_split_1735 (insn, operands);
30995 : break;
30996 :
30997 : case 7:
30998 : if (((
30999 : #line 14072 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31000 : ((32 == 64 || TARGET_AVX512VL
31001 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
31002 : && ix86_pre_reload_split ()) &&
31003 : #line 351 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31004 : (TARGET_AVX)) &&
31005 : #line 14076 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31006 : ( 1)))
31007 : return gen_split_1736 (insn, operands);
31008 : break;
31009 :
31010 : case 8:
31011 : if ((
31012 : #line 14072 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31013 : ((16 == 64 || TARGET_AVX512VL
31014 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
31015 : && ix86_pre_reload_split ()) &&
31016 : #line 14076 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31017 : ( 1)))
31018 : return gen_split_1737 (insn, operands);
31019 : break;
31020 :
31021 : case 9:
31022 : if (((
31023 : #line 14072 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31024 : ((64 == 64 || TARGET_AVX512VL
31025 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
31026 : && ix86_pre_reload_split ()) &&
31027 : #line 352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31028 : (TARGET_AVX512F)) &&
31029 : #line 14076 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31030 : ( 1)))
31031 : return gen_split_1738 (insn, operands);
31032 : break;
31033 :
31034 : case 10:
31035 : if (((
31036 : #line 14072 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31037 : ((32 == 64 || TARGET_AVX512VL
31038 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
31039 : && ix86_pre_reload_split ()) &&
31040 : #line 352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31041 : (TARGET_AVX)) &&
31042 : #line 14076 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31043 : ( 1)))
31044 : return gen_split_1739 (insn, operands);
31045 : break;
31046 :
31047 : case 11:
31048 : if (((
31049 : #line 14072 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31050 : ((16 == 64 || TARGET_AVX512VL
31051 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
31052 : && ix86_pre_reload_split ()) &&
31053 : #line 352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31054 : (TARGET_SSE2)) &&
31055 : #line 14076 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31056 : ( 1)))
31057 : return gen_split_1740 (insn, operands);
31058 : break;
31059 :
31060 : default:
31061 : break;
31062 : }
31063 : switch (GET_CODE (x2))
31064 : {
31065 : case AND:
31066 : return split_74 (x1, insn);
31067 :
31068 : case IOR:
31069 : return split_73 (x1, insn);
31070 :
31071 : case XOR:
31072 : return split_72 (x1, insn);
31073 :
31074 : default:
31075 : return NULL;
31076 : }
31077 : }
31078 :
31079 : rtx_insn *
31080 : peephole2_31 (rtx x1 ATTRIBUTE_UNUSED,
31081 : rtx_insn *insn ATTRIBUTE_UNUSED,
31082 : int *pmatch_len_ ATTRIBUTE_UNUSED)
31083 : {
31084 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
31085 : rtx x2, x3, x4, x5;
31086 : rtx_insn *res ATTRIBUTE_UNUSED;
31087 : if (peep2_current_count >= 2)
31088 : {
31089 : x2 = PATTERN (peep2_next_insn (1));
31090 : if (GET_CODE (x2) == SET)
31091 : {
31092 : x3 = XEXP (x2, 1);
31093 : if (x3 == const_int_rtx[MAX_SAVED_CONST_INT + 0])
31094 : {
31095 : x4 = XEXP (x2, 0);
31096 : operands[2] = x4;
31097 : if (memory_operand (operands[2], E_SImode))
31098 : {
31099 : if (peep2_current_count >= 3)
31100 : {
31101 : x5 = PATTERN (peep2_next_insn (2));
31102 : if (pattern1268 (x5,
31103 : E_SImode) == 0
31104 : &&
31105 : #line 27489 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31106 : (optimize_insn_for_size_p () && peep2_regno_dead_p (0, FLAGS_REG)))
31107 : {
31108 : *pmatch_len_ = 3;
31109 : res = gen_peephole2_237 (insn, operands);
31110 : if (res != NULL_RTX)
31111 : return res;
31112 : }
31113 : }
31114 : if (
31115 : #line 27505 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31116 : (optimize_insn_for_size_p () && peep2_regno_dead_p (0, FLAGS_REG)))
31117 : {
31118 : *pmatch_len_ = 1;
31119 : res = gen_peephole2_239 (insn, operands);
31120 : if (res != NULL_RTX)
31121 : return res;
31122 : }
31123 : }
31124 : }
31125 : }
31126 : }
31127 : if (!
31128 : #line 27518 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31129 : (optimize_insn_for_size_p () && peep2_regno_dead_p (0, FLAGS_REG)))
31130 : return NULL;
31131 : *pmatch_len_ = 0;
31132 : return gen_peephole2_241 (insn, operands);
31133 : }
31134 :
31135 : rtx_insn *
31136 : peephole2_34 (rtx x1 ATTRIBUTE_UNUSED,
31137 : rtx_insn *insn ATTRIBUTE_UNUSED,
31138 : int *pmatch_len_ ATTRIBUTE_UNUSED)
31139 : {
31140 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
31141 : rtx x2, x3, x4, x5, x6, x7, x8;
31142 : rtx_insn *res ATTRIBUTE_UNUSED;
31143 : if (peep2_current_count >= 2)
31144 : {
31145 : res = peephole2_33 (x1, insn, pmatch_len_);
31146 : if (res != NULL_RTX)
31147 : return res;
31148 : }
31149 : x2 = XEXP (x1, 0);
31150 : operands[0] = x2;
31151 : x3 = XEXP (x1, 1);
31152 : operands[1] = x3;
31153 : if (const0_operand (operands[1], E_VOIDmode)
31154 : && general_reg_operand (operands[0], E_VOIDmode)
31155 : &&
31156 : #line 29180 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31157 : (GET_MODE_SIZE (GET_MODE (operands[0])) <= UNITS_PER_WORD
31158 : && (! TARGET_USE_MOV0 || optimize_insn_for_size_p ())
31159 : && peep2_regno_dead_p (0, FLAGS_REG)))
31160 : {
31161 : *pmatch_len_ = 0;
31162 : res = gen_peephole2_364 (insn, operands);
31163 : if (res != NULL_RTX)
31164 : return res;
31165 : }
31166 : if (peep2_current_count < 2
31167 : || !memory_operand (operands[1], E_DFmode)
31168 : || !sse_reg_operand (operands[0], E_DFmode))
31169 : return NULL;
31170 : x4 = PATTERN (peep2_next_insn (1));
31171 : if (GET_CODE (x4) != SET)
31172 : return NULL;
31173 : x5 = XEXP (x4, 1);
31174 : if (GET_CODE (x5) != VEC_CONCAT
31175 : || GET_MODE (x5) != E_V2DFmode)
31176 : return NULL;
31177 : x6 = XEXP (x4, 0);
31178 : operands[2] = x6;
31179 : if (!sse_reg_operand (operands[2], E_V2DFmode))
31180 : return NULL;
31181 : x7 = XEXP (x5, 0);
31182 : operands[4] = x7;
31183 : if (!sse_reg_operand (operands[4], E_DFmode))
31184 : return NULL;
31185 : x8 = XEXP (x5, 1);
31186 : operands[3] = x8;
31187 : if (!memory_operand (operands[3], E_DFmode)
31188 : || !
31189 : #line 1988 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31190 : (TARGET_SSE2 && TARGET_SSE_UNALIGNED_LOAD_OPTIMAL
31191 : && REGNO (operands[4]) == REGNO (operands[2])
31192 : && ix86_operands_ok_for_move_multiple (operands, true, DFmode)))
31193 : return NULL;
31194 : *pmatch_len_ = 1;
31195 : return gen_peephole2_433 (insn, operands);
31196 : }
31197 :
31198 : rtx_insn *
31199 : peephole2_40 (rtx x1 ATTRIBUTE_UNUSED,
31200 : rtx_insn *insn ATTRIBUTE_UNUSED,
31201 : int *pmatch_len_ ATTRIBUTE_UNUSED)
31202 : {
31203 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
31204 : rtx x2, x3, x4, x5, x6, x7;
31205 : rtx_insn *res ATTRIBUTE_UNUSED;
31206 : x2 = XVECEXP (x1, 0, 0);
31207 : x3 = XEXP (x2, 0);
31208 : switch (GET_CODE (x3))
31209 : {
31210 : case REG:
31211 : if (peep2_current_count < 2)
31212 : return NULL;
31213 : operands[0] = x3;
31214 : switch (GET_MODE (operands[0]))
31215 : {
31216 : case E_SImode:
31217 : x4 = PATTERN (peep2_next_insn (1));
31218 : switch (pattern1363 (x4,
31219 : E_SImode))
31220 : {
31221 : case 0:
31222 : if (!
31223 : #line 3656 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31224 : (REGNO (operands[0]) == REGNO (operands[1])))
31225 : return NULL;
31226 : *pmatch_len_ = 1;
31227 : return gen_peephole2_29 (insn, operands);
31228 :
31229 : case 1:
31230 : if (!
31231 : #line 3656 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31232 : (REGNO (operands[0]) == REGNO (operands[1])))
31233 : return NULL;
31234 : *pmatch_len_ = 1;
31235 : return gen_peephole2_31 (insn, operands);
31236 :
31237 : case 2:
31238 : if (!(
31239 : #line 3656 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31240 : (REGNO (operands[0]) == REGNO (operands[1])) &&
31241 : #line 1165 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31242 : (TARGET_64BIT)))
31243 : return NULL;
31244 : *pmatch_len_ = 1;
31245 : return gen_peephole2_33 (insn, operands);
31246 :
31247 : case 3:
31248 : if (!
31249 : #line 4948 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31250 : (REGNO (operands[0]) == REGNO (operands[1])
31251 : && (SImode != SImode
31252 : || !TARGET_ZERO_EXTEND_WITH_AND
31253 : || !optimize_function_for_speed_p (cfun))))
31254 : return NULL;
31255 : *pmatch_len_ = 1;
31256 : return gen_peephole2_41 (insn, operands);
31257 :
31258 : case 4:
31259 : if (!
31260 : #line 4948 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31261 : (REGNO (operands[0]) == REGNO (operands[1])
31262 : && (SImode != SImode
31263 : || !TARGET_ZERO_EXTEND_WITH_AND
31264 : || !optimize_function_for_speed_p (cfun))))
31265 : return NULL;
31266 : *pmatch_len_ = 1;
31267 : return gen_peephole2_43 (insn, operands);
31268 :
31269 : case 5:
31270 : x5 = XVECEXP (x4, 0, 0);
31271 : x6 = XEXP (x5, 1);
31272 : x7 = XEXP (x6, 1);
31273 : operands[1] = x7;
31274 : if (x86_64_general_operand (operands[1], E_SImode)
31275 : &&
31276 : #line 14373 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31277 : (!reg_mentioned_p (operands[0], operands[1])))
31278 : {
31279 : *pmatch_len_ = 1;
31280 : res = gen_peephole2_149 (insn, operands);
31281 : if (res != NULL_RTX)
31282 : return res;
31283 : }
31284 : if (!rtx_equal_p (x7, operands[0]))
31285 : return NULL;
31286 : *pmatch_len_ = 1;
31287 : return gen_peephole2_161 (insn, operands);
31288 :
31289 : case 6:
31290 : x5 = XVECEXP (x4, 0, 0);
31291 : x6 = XEXP (x5, 1);
31292 : x7 = XEXP (x6, 1);
31293 : operands[1] = x7;
31294 : if (x86_64_general_operand (operands[1], E_SImode)
31295 : &&
31296 : #line 14373 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31297 : (!reg_mentioned_p (operands[0], operands[1])))
31298 : {
31299 : *pmatch_len_ = 1;
31300 : res = gen_peephole2_150 (insn, operands);
31301 : if (res != NULL_RTX)
31302 : return res;
31303 : }
31304 : if (!rtx_equal_p (x7, operands[0]))
31305 : return NULL;
31306 : *pmatch_len_ = 1;
31307 : return gen_peephole2_162 (insn, operands);
31308 :
31309 : case 7:
31310 : x5 = XVECEXP (x4, 0, 0);
31311 : x6 = XEXP (x5, 1);
31312 : x7 = XEXP (x6, 1);
31313 : operands[1] = x7;
31314 : if (x86_64_general_operand (operands[1], E_SImode)
31315 : &&
31316 : #line 14373 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31317 : (!reg_mentioned_p (operands[0], operands[1])))
31318 : {
31319 : *pmatch_len_ = 1;
31320 : res = gen_peephole2_151 (insn, operands);
31321 : if (res != NULL_RTX)
31322 : return res;
31323 : }
31324 : if (!rtx_equal_p (x7, operands[0]))
31325 : return NULL;
31326 : *pmatch_len_ = 1;
31327 : return gen_peephole2_163 (insn, operands);
31328 :
31329 : case 8:
31330 : if (!
31331 : #line 14667 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31332 : (REGNO (operands[0]) != REGNO (operands[1])))
31333 : return NULL;
31334 : *pmatch_len_ = 3;
31335 : return gen_peephole2_169 (insn, operands);
31336 :
31337 : default:
31338 : return NULL;
31339 : }
31340 :
31341 : case E_DImode:
31342 : x4 = PATTERN (peep2_next_insn (1));
31343 : switch (pattern1363 (x4,
31344 : E_DImode))
31345 : {
31346 : case 0:
31347 : if (!(
31348 : #line 3656 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31349 : (REGNO (operands[0]) == REGNO (operands[1])) &&
31350 : #line 1168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31351 : (TARGET_64BIT)))
31352 : return NULL;
31353 : *pmatch_len_ = 1;
31354 : return gen_peephole2_30 (insn, operands);
31355 :
31356 : case 1:
31357 : if (!(
31358 : #line 3656 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31359 : (REGNO (operands[0]) == REGNO (operands[1])) &&
31360 : #line 1168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31361 : (TARGET_64BIT)))
31362 : return NULL;
31363 : *pmatch_len_ = 1;
31364 : return gen_peephole2_32 (insn, operands);
31365 :
31366 : case 2:
31367 : if (!(
31368 : #line 3656 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31369 : (REGNO (operands[0]) == REGNO (operands[1])) &&
31370 : #line 1168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31371 : (TARGET_64BIT)))
31372 : return NULL;
31373 : *pmatch_len_ = 1;
31374 : return gen_peephole2_34 (insn, operands);
31375 :
31376 : case 3:
31377 : if (!(
31378 : #line 4948 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31379 : (REGNO (operands[0]) == REGNO (operands[1])
31380 : && (DImode != SImode
31381 : || !TARGET_ZERO_EXTEND_WITH_AND
31382 : || !optimize_function_for_speed_p (cfun))) &&
31383 : #line 1168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31384 : (TARGET_64BIT)))
31385 : return NULL;
31386 : *pmatch_len_ = 1;
31387 : return gen_peephole2_42 (insn, operands);
31388 :
31389 : case 4:
31390 : if (!(
31391 : #line 4948 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31392 : (REGNO (operands[0]) == REGNO (operands[1])
31393 : && (DImode != SImode
31394 : || !TARGET_ZERO_EXTEND_WITH_AND
31395 : || !optimize_function_for_speed_p (cfun))) &&
31396 : #line 1168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31397 : (TARGET_64BIT)))
31398 : return NULL;
31399 : *pmatch_len_ = 1;
31400 : return gen_peephole2_44 (insn, operands);
31401 :
31402 : case 5:
31403 : x5 = XVECEXP (x4, 0, 0);
31404 : x6 = XEXP (x5, 1);
31405 : x7 = XEXP (x6, 1);
31406 : operands[1] = x7;
31407 : if (x86_64_general_operand (operands[1], E_DImode)
31408 : && (
31409 : #line 14373 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31410 : (!reg_mentioned_p (operands[0], operands[1])) &&
31411 : #line 1162 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31412 : (TARGET_64BIT)))
31413 : {
31414 : *pmatch_len_ = 1;
31415 : res = gen_peephole2_152 (insn, operands);
31416 : if (res != NULL_RTX)
31417 : return res;
31418 : }
31419 : if (!rtx_equal_p (x7, operands[0])
31420 : || !
31421 : #line 1162 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31422 : (TARGET_64BIT))
31423 : return NULL;
31424 : *pmatch_len_ = 1;
31425 : return gen_peephole2_164 (insn, operands);
31426 :
31427 : case 6:
31428 : x5 = XVECEXP (x4, 0, 0);
31429 : x6 = XEXP (x5, 1);
31430 : x7 = XEXP (x6, 1);
31431 : operands[1] = x7;
31432 : if (x86_64_general_operand (operands[1], E_DImode)
31433 : && (
31434 : #line 14373 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31435 : (!reg_mentioned_p (operands[0], operands[1])) &&
31436 : #line 1162 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31437 : (TARGET_64BIT)))
31438 : {
31439 : *pmatch_len_ = 1;
31440 : res = gen_peephole2_153 (insn, operands);
31441 : if (res != NULL_RTX)
31442 : return res;
31443 : }
31444 : if (!rtx_equal_p (x7, operands[0])
31445 : || !
31446 : #line 1162 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31447 : (TARGET_64BIT))
31448 : return NULL;
31449 : *pmatch_len_ = 1;
31450 : return gen_peephole2_165 (insn, operands);
31451 :
31452 : case 7:
31453 : x5 = XVECEXP (x4, 0, 0);
31454 : x6 = XEXP (x5, 1);
31455 : x7 = XEXP (x6, 1);
31456 : operands[1] = x7;
31457 : if (x86_64_general_operand (operands[1], E_DImode)
31458 : && (
31459 : #line 14373 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31460 : (!reg_mentioned_p (operands[0], operands[1])) &&
31461 : #line 1162 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31462 : (TARGET_64BIT)))
31463 : {
31464 : *pmatch_len_ = 1;
31465 : res = gen_peephole2_154 (insn, operands);
31466 : if (res != NULL_RTX)
31467 : return res;
31468 : }
31469 : if (!rtx_equal_p (x7, operands[0])
31470 : || !
31471 : #line 1162 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31472 : (TARGET_64BIT))
31473 : return NULL;
31474 : *pmatch_len_ = 1;
31475 : return gen_peephole2_166 (insn, operands);
31476 :
31477 : case 8:
31478 : if (!(
31479 : #line 14667 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31480 : (REGNO (operands[0]) != REGNO (operands[1])) &&
31481 : #line 1168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31482 : (TARGET_64BIT)))
31483 : return NULL;
31484 : *pmatch_len_ = 3;
31485 : return gen_peephole2_170 (insn, operands);
31486 :
31487 : default:
31488 : return NULL;
31489 : }
31490 :
31491 : case E_QImode:
31492 : x4 = PATTERN (peep2_next_insn (1));
31493 : switch (pattern1364 (x4,
31494 : E_QImode))
31495 : {
31496 : case 0:
31497 : x5 = XVECEXP (x4, 0, 0);
31498 : x6 = XEXP (x5, 1);
31499 : x7 = XEXP (x6, 1);
31500 : operands[1] = x7;
31501 : if (general_operand (operands[1], E_QImode)
31502 : &&
31503 : #line 14373 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31504 : (!reg_mentioned_p (operands[0], operands[1])))
31505 : {
31506 : *pmatch_len_ = 1;
31507 : res = gen_peephole2_143 (insn, operands);
31508 : if (res != NULL_RTX)
31509 : return res;
31510 : }
31511 : if (!rtx_equal_p (x7, operands[0]))
31512 : return NULL;
31513 : *pmatch_len_ = 1;
31514 : return gen_peephole2_155 (insn, operands);
31515 :
31516 : case 1:
31517 : x5 = XVECEXP (x4, 0, 0);
31518 : x6 = XEXP (x5, 1);
31519 : x7 = XEXP (x6, 1);
31520 : operands[1] = x7;
31521 : if (general_operand (operands[1], E_QImode)
31522 : &&
31523 : #line 14373 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31524 : (!reg_mentioned_p (operands[0], operands[1])))
31525 : {
31526 : *pmatch_len_ = 1;
31527 : res = gen_peephole2_144 (insn, operands);
31528 : if (res != NULL_RTX)
31529 : return res;
31530 : }
31531 : if (!rtx_equal_p (x7, operands[0]))
31532 : return NULL;
31533 : *pmatch_len_ = 1;
31534 : return gen_peephole2_156 (insn, operands);
31535 :
31536 : case 2:
31537 : x5 = XVECEXP (x4, 0, 0);
31538 : x6 = XEXP (x5, 1);
31539 : x7 = XEXP (x6, 1);
31540 : operands[1] = x7;
31541 : if (general_operand (operands[1], E_QImode)
31542 : &&
31543 : #line 14373 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31544 : (!reg_mentioned_p (operands[0], operands[1])))
31545 : {
31546 : *pmatch_len_ = 1;
31547 : res = gen_peephole2_145 (insn, operands);
31548 : if (res != NULL_RTX)
31549 : return res;
31550 : }
31551 : if (!rtx_equal_p (x7, operands[0]))
31552 : return NULL;
31553 : *pmatch_len_ = 1;
31554 : return gen_peephole2_157 (insn, operands);
31555 :
31556 : default:
31557 : return NULL;
31558 : }
31559 :
31560 : case E_HImode:
31561 : x4 = PATTERN (peep2_next_insn (1));
31562 : switch (pattern1364 (x4,
31563 : E_HImode))
31564 : {
31565 : case 0:
31566 : x5 = XVECEXP (x4, 0, 0);
31567 : x6 = XEXP (x5, 1);
31568 : x7 = XEXP (x6, 1);
31569 : operands[1] = x7;
31570 : if (general_operand (operands[1], E_HImode)
31571 : &&
31572 : #line 14373 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31573 : (!reg_mentioned_p (operands[0], operands[1])))
31574 : {
31575 : *pmatch_len_ = 1;
31576 : res = gen_peephole2_146 (insn, operands);
31577 : if (res != NULL_RTX)
31578 : return res;
31579 : }
31580 : if (!rtx_equal_p (x7, operands[0]))
31581 : return NULL;
31582 : *pmatch_len_ = 1;
31583 : return gen_peephole2_158 (insn, operands);
31584 :
31585 : case 1:
31586 : x5 = XVECEXP (x4, 0, 0);
31587 : x6 = XEXP (x5, 1);
31588 : x7 = XEXP (x6, 1);
31589 : operands[1] = x7;
31590 : if (general_operand (operands[1], E_HImode)
31591 : &&
31592 : #line 14373 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31593 : (!reg_mentioned_p (operands[0], operands[1])))
31594 : {
31595 : *pmatch_len_ = 1;
31596 : res = gen_peephole2_147 (insn, operands);
31597 : if (res != NULL_RTX)
31598 : return res;
31599 : }
31600 : if (!rtx_equal_p (x7, operands[0]))
31601 : return NULL;
31602 : *pmatch_len_ = 1;
31603 : return gen_peephole2_159 (insn, operands);
31604 :
31605 : case 2:
31606 : x5 = XVECEXP (x4, 0, 0);
31607 : x6 = XEXP (x5, 1);
31608 : x7 = XEXP (x6, 1);
31609 : operands[1] = x7;
31610 : if (general_operand (operands[1], E_HImode)
31611 : &&
31612 : #line 14373 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31613 : (!reg_mentioned_p (operands[0], operands[1])))
31614 : {
31615 : *pmatch_len_ = 1;
31616 : res = gen_peephole2_148 (insn, operands);
31617 : if (res != NULL_RTX)
31618 : return res;
31619 : }
31620 : if (!rtx_equal_p (x7, operands[0]))
31621 : return NULL;
31622 : *pmatch_len_ = 1;
31623 : return gen_peephole2_160 (insn, operands);
31624 :
31625 : default:
31626 : return NULL;
31627 : }
31628 :
31629 : default:
31630 : return NULL;
31631 : }
31632 :
31633 : case ZERO_EXTRACT:
31634 : if (pattern1076 (x3) != 0
31635 : || !
31636 : #line 19441 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31637 : (TARGET_64BIT && !TARGET_USE_BT))
31638 : return NULL;
31639 : *pmatch_len_ = 0;
31640 : return gen_peephole2_186 (insn, operands);
31641 :
31642 : default:
31643 : return NULL;
31644 : }
31645 : }
|