Lines Matching defs:s64

50   const LLT s64 = LLT::scalar(64);
67 const LLT nxv2s64 = LLT::scalable_vector(2, s64);
75 std::initializer_list<LLT> ScalarAndPtrTypesList = {s8, s16, s32, s64, p0};
97 .legalFor({p0, s8, s16, s32, s64})
100 .clampScalar(0, s8, s64)
109 .legalFor({p0, s16, s32, s64})
112 .clampScalar(0, s16, s64)
117 .clampMaxNumElements(0, s64, 2)
121 .legalFor({s32, s64, v4s16, v8s16, v2s32, v4s32, v2s64})
123 .clampScalar(0, s32, s64)
130 .legalFor({s32, s64, v2s32, v2s64, v4s32, v4s16, v8s16, v16s8, v8s8})
132 .clampScalar(0, s32, s64)
163 {s32, s64},
164 {s64, s64},
174 .clampScalar(1, s32, s64)
175 .clampScalar(0, s32, s64)
184 .legalFor({{p0, s64}, {v2p0, v2s64}})
185 .clampScalarOrElt(1, s64, s64)
188 getActionDefinitionsBuilder(G_PTRMASK).legalFor({{p0, s64}});
191 .legalFor({s32, s64})
193 .clampScalar(0, s32, s64)
198 .lowerFor({s8, s16, s32, s64, v2s64, v4s32, v2s32})
200 .clampScalarOrElt(0, s32, s64)
208 .clampScalar(0, s32, s64)
212 .legalFor({s64, v8s16, v16s8, v4s32})
219 .legalFor({s32, s64, v8s8, v16s8, v4s16, v8s16, v2s32, v4s32})
238 .legalFor({{s32, s32}, {s64, s32}})
239 .clampScalar(0, s32, s64)
240 .clampScalar(1, s32, s64)
248 .legalFor({MinFPScalar, s32, s64, v2s32, v4s32, v2s64})
261 .libcallFor({s32, s64})
266 .legalFor({{s64, MinFPScalar}, {s64, s32}, {s64, s64}})
267 .libcallFor({{s64, s128}})
277 .libcallFor({s32, s64});
281 .libcallFor({{s32, s32}, {s64, s32}});
284 .legalIf(all(typeInSet(0, {s32, s64, p0}),
287 .clampScalar(0, s32, s64)
291 .maxScalarIf(typeInSet(0, {s64, p0}), 1, s32);
294 .legalIf(all(typeInSet(0, {s16, s32, s64, p0}),
295 typeInSet(1, {s32, s64, s128, p0}), smallerThan(0, 1)))
301 .maxScalarIf(typeInSet(1, {s64, p0}), 0, s32)
302 .maxScalarIf(typeInSet(1, {s128}), 0, s64);
316 {s64, p0, s8, 2},
317 {s64, p0, s16, 2},
318 {s64, p0, s32, 4},
319 {s64, p0, s64, 8},
320 {p0, p0, s64, 8},
321 {v2s32, p0, s64, 8}})
323 .clampScalar(0, s32, s64)
372 {s64, p0, s64, 8},
373 {p0, p0, s64, 8},
375 {v8s8, p0, s64, 8},
377 {v4s16, p0, s64, 8},
379 {v2s32, p0, s64, 8},
384 {{s32, p0, s8, 8}, {s32, p0, s16, 8}, {s64, p0, s32, 8}})
389 .clampMaxNumElements(0, s64, 2)
392 .clampScalar(0, s8, s64)
422 {s64, p0, s8, 8}, // truncstorei8 from s64
424 {s64, p0, s16, 8}, // truncstorei16 from s64
426 {s64, p0, s64, 8}, {s64, p0, s32, 8}, // truncstorei32 from s64
427 {p0, p0, s64, 8}, {s128, p0, s128, 8}, {v16s8, p0, s128, 8},
428 {v8s8, p0, s64, 8}, {v4s16, p0, s64, 8}, {v8s16, p0, s128, 8},
429 {v2s32, p0, s64, 8}, {v4s32, p0, s128, 8}, {v2s64, p0, s128, 8}})
430 .clampScalar(0, s8, s64)
439 .clampMaxNumElements(0, s64, 2)
461 {p0, s64, s64, 8},
493 .legalIf(all(typeInSet(0, {s16, s32, s64}),
504 if (LdTy == s64)
512 .legalFor({p0, s8, s16, s32, s64})
514 .clampScalar(0, s8, s64);
520 return Ty == s32 || Ty == s64 || Ty == s128;
526 .legalFor({{s32, s32}, {s32, s64}, {s32, p0}})
528 .clampScalar(1, s32, s64)
543 s64)
554 {s32, s64},
564 .clampScalarOrElt(1, MinFPScalar, s64)
575 .clampMaxNumElements(1, s64, 2)
603 .clampScalar(0, s64, s64) // Just for s128, others are handled above.
639 .legalFor({s32, s64})
641 .maxScalar(0, s64)
645 .clampMaxNumElements(0, s64, 2)
651 {{s16, s32}, {s16, s64}, {s32, s64}, {v4s16, v4s32}, {v2s32, v2s64}})
652 .libcallFor({{s16, s128}, {s32, s128}, {s64, s128}})
659 {{s32, s16}, {s64, s16}, {s64, s32}, {v4s32, v4s16}, {v2s64, v2s32}})
660 .libcallFor({{s128, s64}, {s128, s32}, {s128, s16}})
668 {s64, s32},
669 {s32, s64},
670 {s64, s64},
678 (Query.Types[0] == s32 || Query.Types[0] == s64 ||
689 changeTo(0, s64))
710 .clampMaxNumElements(0, s64, 2)
712 {{s32, s128}, {s64, s128}, {s128, s128}, {s128, s32}, {s128, s64}});
716 {s64, s32},
717 {s32, s64},
718 {s64, s64},
726 (Query.Types[1] == s32 || Query.Types[1] == s64 ||
751 .clampMaxNumElements(0, s64, 2)
754 {s64, s128},
757 {s128, s64}});
766 .legalFor({{s32, s32}, {s64, s32}, {p0, s32}})
768 .clampScalar(0, s32, s64)
785 .legalFor({{s64, p0}, {v2s64, v2p0}})
787 .clampScalar(0, s64, s64);
793 .legalFor({{p0, s64}, {v2p0, v2s64}});
800 .legalForCartesianProduct({s64, v8s8, v4s16, v2s32})
816 .customForCartesianProduct({s8, s16, s32, s64, p0}, {p0})
817 .clampScalar(0, s8, s64)
822 all(typeInSet(0, {s8, s16, s32, s64, s128}), typeIs(2, p0)));
829 .legalIf(all(typeInSet(0, {s32, s64}), typeIs(1, p0),
836 .libcallIf(all(typeInSet(0, {s8, s16, s32, s64, s128}), typeIs(1, p0),
838 .clampScalar(0, s32, s64);
843 .legalIf(all(typeInSet(0, {s32, s64}), typeIs(1, p0),
845 .libcallIf(all(typeInSet(0, {s8, s16, s32, s64}), typeIs(1, p0),
847 .clampScalar(0, s32, s64);
853 .legalIf(all(typeInSet(0, {s32, s64}), typeIs(1, p0)))
854 .clampScalar(0, s32, s64);
865 .clampScalar(LitTyIdx, s8, s64)
893 .minScalar(2, s64)
902 // We want to promote to <M x s1> to <M x s64> if that wouldn't
906 0, s64)
924 .clampMaxNumElements(1, s64, 2)
938 .clampMaxNumElements(0, s64, 2)
949 {v2s64, s64}})
960 {s32, s64, v8s8, v16s8, v4s16, v8s16, v2s32, v4s32})
963 .clampScalar(1, s32, s64)
969 .legalFor({s32, s64, v8s8, v16s8})
971 .clampScalar(0, s32, s64);
978 .clampScalar(1, s32, s64)
981 return (HasCSSC && typeInSet(0, {s32, s64})(Query));
984 return (!HasCSSC && typeInSet(0, {s32, s64})(Query));
1043 getActionDefinitionsBuilder(G_BRJT).legalFor({{p0, s64}});
1055 .legalForCartesianProduct({p0}, {s64}, {s64})
1056 .customForCartesianProduct({p0}, {s8}, {s64})
1060 .legalForCartesianProduct({p0}, {p0}, {s64})
1065 .legalForCartesianProduct({p0}, {p0}, {s64});
1076 .legalFor({s32, s64});
1100 .legalFor({{s32, v2s32}, {s32, v4s32}, {s64, v2s64}})
1106 .clampMaxNumElements(1, s64, 2)
1116 .clampMaxNumElements(1, s64, 2)
1135 {s64, v2s64}})
1136 .clampMaxNumElements(1, s64, 2)
1144 .legalFor({{s32, v4s32}, {s32, v2s32}, {s64, v2s64}})
1150 .clampMaxNumElements(1, s64, 2)
1177 .clampMaxNumElements(1, s64, 2)
1210 .customFor({{s32, s32}, {s32, s64}, {s64, s64}})
1214 .legalFor({{s32, s64}, {s64, s64}})
1222 .customFor({{s32, s32}, {s64, s64}});
1229 {s64, s64},
1243 {s64, s64},
1261 .clampMaxNumElements(0, s64, 2)
1268 .legalFor({{s64, s32}, {s64, s64}});
1737 // allow the existing patterns for s64 to fire for p0, we just try to bitcast
1738 // the value to use s64 types.
1756 LLT s64 = LLT::scalar(64);
1773 NewI = MIRBuilder.buildInstr(Opcode, {s64, s64}, {});
1777 auto Split = MIRBuilder.buildUnmerge(s64, MI.getOperand(0));
1911 LLT s64 = LLT::scalar(64);
1913 auto Split = MIRBuilder.buildUnmerge(s64, Val);
1914 auto CTPOP1 = MIRBuilder.buildCTPOP(s64, Split->getOperand(0));
1915 auto CTPOP2 = MIRBuilder.buildCTPOP(s64, Split->getOperand(1));
1916 auto Add = MIRBuilder.buildAdd(s64, CTPOP1, CTPOP2);
1932 // s32,s64,v4s16,v2s32 -> v8i8
2017 LLT s64 = LLT::scalar(64);
2019 auto DesiredI = MIRBuilder.buildUnmerge({s64, s64}, MI.getOperand(2));
2020 auto NewI = MIRBuilder.buildUnmerge({s64, s64}, MI.getOperand(3));
2021 auto DstLo = MRI.createGenericVirtualRegister(s64);
2022 auto DstHi = MRI.createGenericVirtualRegister(s64);