Lines Matching defs:Query

86       .legalIf([=](const LegalityQuery &Query) -> bool {
90 return typeInSet(0, {p0, s1, s8, s16, s32, s64})(Query) ||
91 (Is64Bit && typeInSet(0, {s128})(Query));
95 .legalIf([=](const LegalityQuery &Query) -> bool {
96 return typeInSet(0, {p0, s8, s16, s32})(Query) ||
97 (Is64Bit && typeInSet(0, {s64})(Query));
139 .legalIf([=](const LegalityQuery &Query) -> bool {
140 if (typeInSet(0, {s8, s16, s32})(Query))
142 if (Is64Bit && typeInSet(0, {s64})(Query))
144 if (HasSSE2 && typeInSet(0, {v16s8, v8s16, v4s32, v2s64})(Query))
146 if (HasAVX2 && typeInSet(0, {v32s8, v16s16, v8s32, v4s64})(Query))
148 if (HasAVX512 && typeInSet(0, {v16s32, v8s64})(Query))
150 if (HasBWI && typeInSet(0, {v64s8, v32s16})(Query))
167 .legalIf([=](const LegalityQuery &Query) -> bool {
168 return typePairInSet(0, 1, {{s8, s1}, {s16, s1}, {s32, s1}})(Query) ||
169 (Is64Bit && typePairInSet(0, 1, {{s64, s1}})(Query));
178 .legalIf([=](const LegalityQuery &Query) -> bool {
179 if (typeInSet(0, {s8, s16, s32})(Query))
181 if (Is64Bit && typeInSet(0, {s64})(Query))
183 if (HasSSE2 && typeInSet(0, {v8s16})(Query))
185 if (HasSSE41 && typeInSet(0, {v4s32})(Query))
187 if (HasAVX2 && typeInSet(0, {v16s16, v8s32})(Query))
189 if (HasAVX512 && typeInSet(0, {v16s32})(Query))
191 if (HasDQI && typeInSet(0, {v8s64})(Query))
193 if (HasDQI && HasVLX && typeInSet(0, {v2s64, v4s64})(Query))
195 if (HasBWI && typeInSet(0, {v32s16})(Query))
210 .legalIf([=](const LegalityQuery &Query) -> bool {
211 return typeInSet(0, {s8, s16, s32})(Query) ||
212 (Is64Bit && typeInSet(0, {s64})(Query));
220 .legalIf([=](const LegalityQuery &Query) -> bool {
221 return typeInSet(0, {s8, s16, s32})(Query) ||
222 (Is64Bit && typeInSet(0, {s64})(Query));
229 .legalIf([=](const LegalityQuery &Query) -> bool {
230 return typePairInSet(0, 1, {{s8, s8}, {s16, s8}, {s32, s8}})(Query) ||
231 (Is64Bit && typePairInSet(0, 1, {{s64, s8}})(Query));
238 .legalIf([=](const LegalityQuery &Query) -> bool {
239 if (typeInSet(0, {s8, s16, s32})(Query))
241 if (Is64Bit && typeInSet(0, {s64})(Query))
243 if (HasSSE2 && typeInSet(0, {v16s8, v8s16, v4s32, v2s64})(Query))
245 if (HasAVX && typeInSet(0, {v32s8, v16s16, v8s32, v4s64})(Query))
247 if (HasAVX512 && typeInSet(0, {v64s8, v32s16, v16s32, v8s64})(Query))
274 .legalIf([=](const LegalityQuery &Query) {
275 return Query.Types[0] == s32 ||
276 (Subtarget.is64Bit() && Query.Types[0] == s64);
283 .legalIf([=](const LegalityQuery &Query) -> bool {
285 (typePairInSet(0, 1, {{s16, s16}, {s32, s32}})(Query) ||
286 (Is64Bit && typePairInSet(0, 1, {{s64, s64}})(Query)));
294 .legalIf([=](const LegalityQuery &Query) -> bool {
296 (typePairInSet(0, 1, {{s16, s16}, {s32, s32}})(Query) ||
297 (Is64Bit && typePairInSet(0, 1, {{s64, s64}})(Query)));
305 .legalIf([=](const LegalityQuery &Query) -> bool {
306 return (Query.Opcode == G_CTTZ_ZERO_UNDEF || Subtarget.hasBMI()) &&
307 (typePairInSet(0, 1, {{s16, s16}, {s32, s32}})(Query) ||
308 (Is64Bit && typePairInSet(0, 1, {{s64, s64}})(Query)));
316 .legalIf([=](const LegalityQuery &Query) -> bool {
317 return typeInSet(0, {s8, s16, s32, p0})(Query) ||
318 (UseX87 && typeIs(0, s80)(Query)) ||
319 (Is64Bit && typeIs(0, s64)(Query)) ||
320 (HasSSE1 && typeInSet(0, {v16s8, v8s16, v4s32, v2s64})(Query)) ||
321 (HasAVX && typeInSet(0, {v32s8, v16s16, v8s32, v4s64})(Query)) ||
323 typeInSet(0, {v64s8, v32s16, v16s32, v8s64})(Query));
353 .legalIf([=](const LegalityQuery &Query) -> bool {
354 return typePairInSet(0, 1, {{p0, s32}})(Query) ||
355 (Is64Bit && typePairInSet(0, 1, {{p0, s64}})(Query));
418 .legalIf([=](const LegalityQuery &Query) {
419 return typeInSet(0, {s8, s16, s32})(Query) ||
420 (Query.Opcode == G_ANYEXT && Query.Types[0] == s128) ||
421 (Is64Bit && Query.Types[0] == s64);
433 .legalIf([=](const LegalityQuery &Query) -> bool {
434 return (typeInSet(0, {s32, s64})(Query)) ||
435 (UseX87 && typeInSet(0, {s80})(Query));
440 .legalIf([=](const LegalityQuery &Query) {
441 return (typeInSet(0, {s32, s64})(Query)) ||
442 (HasSSE1 && typeInSet(0, {v4s32})(Query)) ||
443 (HasSSE2 && typeInSet(0, {v2s64})(Query)) ||
444 (HasAVX && typeInSet(0, {v8s32, v4s64})(Query)) ||
445 (HasAVX512 && typeInSet(0, {v16s32, v8s64})(Query)) ||
446 (UseX87 && typeInSet(0, {s80})(Query));
451 .legalIf([=](const LegalityQuery &Query) {
452 return (HasSSE1 && typePairInSet(0, 1, {{s8, s32}})(Query)) ||
453 (HasSSE2 && typePairInSet(0, 1, {{s8, s64}})(Query));
460 getActionDefinitionsBuilder(G_FPEXT).legalIf([=](const LegalityQuery &Query) {
461 return (HasSSE2 && typePairInSet(0, 1, {{s64, s32}})(Query)) ||
462 (HasAVX && typePairInSet(0, 1, {{v4s64, v4s32}})(Query)) ||
463 (HasAVX512 && typePairInSet(0, 1, {{v8s64, v8s32}})(Query));
467 [=](const LegalityQuery &Query) {
468 return (HasSSE2 && typePairInSet(0, 1, {{s32, s64}})(Query)) ||
469 (HasAVX && typePairInSet(0, 1, {{v4s32, v4s64}})(Query)) ||
470 (HasAVX512 && typePairInSet(0, 1, {{v8s32, v8s64}})(Query));
474 .legalIf([=](const LegalityQuery &Query) {
476 (typePairInSet(0, 1, {{s32, s32}})(Query) ||
477 (Is64Bit && typePairInSet(0, 1, {{s32, s64}})(Query)))) ||
479 (typePairInSet(0, 1, {{s64, s32}})(Query) ||
480 (Is64Bit && typePairInSet(0, 1, {{s64, s64}})(Query))));
488 .legalIf([=](const LegalityQuery &Query) {
490 (typePairInSet(0, 1, {{s32, s32}})(Query) ||
491 (Is64Bit && typePairInSet(0, 1, {{s64, s32}})(Query)))) ||
493 (typePairInSet(0, 1, {{s32, s64}})(Query) ||
494 (Is64Bit && typePairInSet(0, 1, {{s64, s64}})(Query))));
509 .legalIf([=](const LegalityQuery &Query) {
510 return HasAVX512 && typeInSet(0, {s32, s64})(Query) &&
511 typeInSet(1, {s32, s64})(Query);
513 .customIf([=](const LegalityQuery &Query) {
515 ((HasSSE1 && typeIs(0, s32)(Query)) ||
516 (HasSSE2 && typeIs(0, s64)(Query))) &&
517 scalarNarrowerThan(1, Is64Bit ? 64 : 32)(Query);
519 .lowerIf([=](const LegalityQuery &Query) {
522 ((HasSSE1 && typeIs(0, s32)(Query)) ||
523 (HasSSE2 && typeIs(0, s64)(Query))) &&
524 (Is64Bit && typeIs(1, s64)(Query));
532 .legalIf([=](const LegalityQuery &Query) {
533 return HasAVX512 && typeInSet(0, {s32, s64})(Query) &&
534 typeInSet(1, {s32, s64})(Query);
536 .customIf([=](const LegalityQuery &Query) {
538 ((HasSSE1 && typeIs(1, s32)(Query)) ||
539 (HasSSE2 && typeIs(1, s64)(Query))) &&
540 scalarNarrowerThan(0, Is64Bit ? 64 : 32)(Query);
546 .lowerIf([=](const LegalityQuery &Query) {
548 ((HasSSE1 && typeIs(1, s32)(Query)) ||
549 (HasSSE2 && typeIs(1, s64)(Query))) &&
550 (Is64Bit && typeIs(0, s64)(Query));
559 .customIf([=](const LegalityQuery &Query) {
560 return (HasSSE1 && typeInSet(0, {v4s32})(Query)) ||
561 (HasSSE2 && typeInSet(0, {v2s64, v8s16, v16s8})(Query)) ||
562 (HasAVX && typeInSet(0, {v4s64, v8s32, v16s16, v32s8})(Query)) ||
572 .legalIf([=](const LegalityQuery &Query) {
573 unsigned SubIdx = Query.Opcode == G_EXTRACT ? 0 : 1;
574 unsigned FullIdx = Query.Opcode == G_EXTRACT ? 1 : 0;
579 {v2s64, v4s64}})(Query)) ||
588 {v4s64, v8s64}})(Query));
593 .legalIf([=](const LegalityQuery &Query) {
598 {v2s64, v4s64}})(Query)) ||
607 {v4s64, v8s64}})(Query));