|
reference, declaration → definition
definition → references, declarations, derived classes, virtual overrides
reference to multiple definitions → definitions
unreferenced
|
References
lib/Target/AArch64/AArch64LegalizerInfo.cpp 62 .legalFor({p0, s1, s8, s16, s32, s64, v4s32, v2s64})
63 .clampScalar(0, s1, s64)
68 (Query.Types[0].getElementType() != s64 ||
73 if (EltTy == s64)
79 .legalFor({p0, s16, s32, s64, v2s32, v4s32, v2s64})
80 .clampScalar(0, s16, s64)
84 .legalFor({s32, s64, v4s32, v2s32, v2s64})
85 .clampScalar(0, s32, s64)
89 .legalFor({s32, s64, v2s32, v4s32, v2s64, v8s16, v16s8})
90 .clampScalar(0, s32, s64)
97 .legalFor({{s32, s32}, {s64, s64},
97 .legalFor({{s32, s32}, {s64, s64},
99 .clampScalar(1, s32, s64)
100 .clampScalar(0, s32, s64)
108 .legalFor({{p0, s64}})
109 .clampScalar(1, s64, s64);
109 .clampScalar(1, s64, s64);
114 .legalFor({s32, s64})
116 .clampScalar(0, s32, s64)
128 {s32, s64},
129 {s64, s64},
129 {s64, s64},
133 .clampScalar(1, s32, s64)
134 .clampScalar(0, s32, s64)
138 .lowerFor({s1, s8, s16, s32, s64});
141 .lowerFor({{s64, s1}});
143 getActionDefinitionsBuilder({G_SMULH, G_UMULH}).legalFor({s32, s64});
146 .legalFor({{s32, s1}, {s64, s1}});
149 .legalFor({s32, s64, v2s64, v4s32, v2s32});
151 getActionDefinitionsBuilder(G_FREM).libcallFor({s32, s64});
172 .legalFor({s16, s32, s64, v2s32, v4s32, v2s64, v2s16, v4s16, v8s16});
180 .libcallFor({s32, s64, v2s32, v4s32, v2s64});
189 if (Ty0 != s32 && Ty0 != s64 && Ty0 != p0)
194 .clampScalar(0, s32, s64)
197 .maxScalarIf(typeInSet(0, {s64}), 1, s32)
207 if (Ty1 != s32 && Ty1 != s64 && Ty1 != s128)
217 .maxScalarIf(typeInSet(1, {s64}), 0, s32)
224 {s64, p0, 8, 2},
225 {s64, p0, 16, 2},
226 {s64, p0, 32, 4},
227 {s64, p0, 64, 8},
230 .clampScalar(0, s32, s64)
250 {s64, p0, 64, 8},
263 .clampScalar(0, s8, s64)
271 .clampMaxNumElements(0, s64, 1)
280 {s64, p0, 64, 8},
289 .clampScalar(0, s8, s64)
296 .clampMaxNumElements(0, s64, 1)
301 .legalFor({p0, s8, s16, s32, s64})
302 .clampScalar(0, s8, s64)
305 .legalFor({s32, s64})
306 .clampScalar(0, s32, s64);
310 {s32, s64},
320 .clampScalar(1, s32, s64)
335 s64)
339 .legalFor({{s32, s32}, {s32, s64}})
341 .clampScalar(1, s32, s64)
373 .clampScalar(0, s64, s64); // Just for s128, others are handled above.
373 .clampScalar(0, s64, s64); // Just for s128, others are handled above.
381 {{s16, s32}, {s16, s64}, {s32, s64}, {v4s16, v4s32}, {v2s32, v2s64}});
381 {{s16, s32}, {s16, s64}, {s32, s64}, {v4s16, v4s32}, {v2s32, v2s64}});
383 {{s32, s16}, {s64, s16}, {s64, s32}, {v4s32, v4s16}, {v2s64, v2s32}});
383 {{s32, s16}, {s64, s16}, {s64, s32}, {v4s32, v4s16}, {v2s64, v2s32}});
387 .legalForCartesianProduct({s32, s64, v2s64, v4s32, v2s32})
388 .clampScalar(0, s32, s64)
390 .clampScalar(1, s32, s64)
394 .legalForCartesianProduct({s32, s64, v2s64, v4s32, v2s32})
395 .clampScalar(1, s32, s64)
397 .clampScalar(0, s32, s64)
408 .legalFor({{s32, s1}, {s64, s1}, {p0, s1}})
409 .clampScalar(0, s32, s64)
418 .legalForCartesianProduct({s1, s8, s16, s32, s64}, {p0})
419 .maxScalar(0, s64)
426 .legalFor({{p0, s64}});
434 .legalForCartesianProduct({s1, s8, s16, s32, s64, s128, v16s8, v8s8, v4s8,
443 .customForCartesianProduct({s8, s16, s32, s64, p0}, {p0})
444 .clampScalar(0, s8, s64)
450 typeInSet(0, {s8, s16, s32, s64}), typeIs(1, s1), typeIs(2, p0),
458 typeInSet(0, {s8, s16, s32, s64}), typeIs(1, p0),
546 .minScalar(2, s64)
566 {v2s64, s64}})
578 {s32, s64, v8s8, v16s8, v4s16, v8s16, v2s32, v4s32})
607 .legalFor({{p0}, {s64}});
610 return Query.Types[0] == p0 && Query.Types[1] == s64;