• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /freebsd-12-stable/contrib/llvm-project/llvm/lib/Target/AArch64/

Lines Matching refs:s64

40   const LLT s64 = LLT::scalar(64);
62 .legalFor({p0, s1, s8, s16, s32, s64, v2s32, 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},
99 .clampScalar(1, s32, s64)
100 .clampScalar(0, s32, s64)
108 .legalFor({{p0, s64}})
109 .clampScalar(1, s64, s64);
114 .legalFor({s32, s64})
116 .clampScalar(0, s32, s64)
128 {s32, 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}})
150 .legalFor({s32, s64, v2s64, v4s32, v2s32});
152 getActionDefinitionsBuilder(G_FREM).libcallFor({s32, s64});
173 .legalFor({s16, s32, s64, v2s32, v4s32, v2s64, v2s16, v4s16, v8s16});
181 .libcallFor({s32, s64, v2s32, v4s32, v2s64});
190 if (Ty0 != s32 && Ty0 != s64 && Ty0 != p0)
195 .clampScalar(0, s32, s64)
198 .maxScalarIf(typeInSet(0, {s64}), 1, s32)
208 if (Ty1 != s32 && Ty1 != s64 && Ty1 != s128)
218 .maxScalarIf(typeInSet(1, {s64}), 0, s32)
225 {s64, p0, 8, 2},
226 {s64, p0, 16, 2},
227 {s64, p0, 32, 4},
228 {s64, p0, 64, 8},
231 .clampScalar(0, s32, s64)
251 {s64, p0, 64, 8},
264 .clampScalar(0, s8, s64)
272 .clampMaxNumElements(0, s64, 1)
281 {s64, p0, 64, 8},
290 .clampScalar(0, s8, s64)
297 .clampMaxNumElements(0, s64, 1)
302 .legalFor({p0, s8, s16, s32, s64})
303 .clampScalar(0, s8, s64)
306 .legalFor({s32, s64})
307 .clampScalar(0, s32, s64);
311 {s32, s64},
321 .clampScalar(1, s32, s64)
336 s64)
340 .legalFor({{s32, s32}, {s32, s64}})
342 .clampScalar(1, s32, s64)
374 .clampScalar(0, s64, s64); // Just for s128, others are handled above.
382 {{s16, s32}, {s16, s64}, {s32, s64}, {v4s16, v4s32}, {v2s32, v2s64}});
384 {{s32, s16}, {s64, s16}, {s64, s32}, {v4s32, v4s16}, {v2s64, v2s32}});
388 .legalForCartesianProduct({s32, s64, v2s64, v4s32, v2s32})
389 .clampScalar(0, s32, s64)
391 .clampScalar(1, s32, s64)
395 .legalForCartesianProduct({s32, s64, v2s64, v4s32, v2s32})
396 .clampScalar(1, s32, s64)
398 .clampScalar(0, s32, s64)
409 .legalFor({{s32, s1}, {s64, s1}, {p0, s1}})
410 .clampScalar(0, s32, s64)
419 .legalForCartesianProduct({s1, s8, s16, s32, s64}, {p0})
420 .maxScalar(0, s64)
427 .legalFor({{p0, s64}});
435 .legalForCartesianProduct({s1, s8, s16, s32, s64, s128, v16s8, v8s8, v4s8,
444 .customForCartesianProduct({s8, s16, s32, s64, p0}, {p0})
445 .clampScalar(0, s8, s64)
451 typeInSet(0, {s8, s16, s32, s64}), typeIs(1, s1), typeIs(2, p0),
459 typeInSet(0, {s8, s16, s32, s64}), typeIs(1, p0),
525 // So at this point, we have s8, s16, s32, s64, s128, s192, s256, s384,
526 // s512, <X x s8>, <X x s16>, <X x s32>, or <X x s64>.
547 .minScalar(2, s64)
567 {v2s64, s64}})
579 {s32, s64, v8s8, v16s8, v4s16, v8s16, v2s32, v4s32})
608 .legalFor({{p0}, {s64}});
611 return Query.Types[0] == p0 && Query.Types[1] == s64;
691 // allow the existing patterns for s64 to fire for p0, we just try to bitcast
692 // the value to use s64 types.