Lines Matching defs:s16

48   const LLT s16 = LLT::scalar(16);
65 const LLT nxv8s16 = LLT::scalable_vector(8, s16);
75 std::initializer_list<LLT> ScalarAndPtrTypesList = {s8, s16, s32, s64, p0};
87 // Some instructions only support s16 if the subtarget has full 16-bit FP
90 const LLT &MinFPScalar = HasFP16 ? s16 : s32;
97 .legalFor({p0, s8, s16, s32, s64})
109 .legalFor({p0, s16, s32, s64})
112 .clampScalar(0, s16, s64)
115 .clampMaxNumElements(0, s16, 8)
134 .clampMaxNumElements(0, s16, 8)
146 0, s16)
198 .lowerFor({s8, s16, s32, s64, v2s64, v4s32, v2s32})
285 typeInSet(1, {s8, s16, s32}), smallerThan(1, 0)))
290 .maxScalarIf(typeInSet(0, {s32}), 1, s16)
294 .legalIf(all(typeInSet(0, {s16, s32, s64, p0}),
299 .minScalar(0, s16)
300 .maxScalarIf(typeInSet(1, {s32}), 0, s16)
314 {s32, p0, s16, 8},
317 {s64, p0, s16, 2},
370 {s16, p0, s16, 8},
384 {{s32, p0, s8, 8}, {s32, p0, s16, 8}, {s64, p0, s32, 8}})
387 .clampMaxNumElements(0, s16, 8)
420 {{s8, p0, s8, 8}, {s16, p0, s8, 8}, // truncstorei8 from s16
423 {s16, p0, s16, 8}, {s32, p0, s16, 8}, // truncstorei16 from s32
424 {s64, p0, s16, 8}, // truncstorei16 from s64
425 {s32, p0, s8, 8}, {s32, p0, s16, 8}, {s32, p0, s32, 8},
437 .clampMaxNumElements(0, s16, 8)
457 {p0, s16, s16, 8},
459 {p0, s32, s16, 8},
493 .legalIf(all(typeInSet(0, {s16, s32, s64}),
500 if (LdTy == s16)
503 return MemTy == s8 || MemTy == s16;
505 return MemTy == s8 || MemTy == s16 || MemTy == s32;
512 .legalFor({p0, s8, s16, s32, s64})
518 if (HasFP16 && Ty == s16)
606 .clampMaxNumElements(1, s16, 4)
617 .clampMinNumElements(1, s16, 4);
623 .clampMaxNumElements(0, s16, 4)
635 .clampMinNumElements(0, s16, 4)
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}})
676 (Query.Types[1] == s16 || Query.Types[1] == v4s16 ||
687 return Query.Types[1] == s16 && Query.Types[0].getSizeInBits() > 64;
724 (Query.Types[0] == s16 || Query.Types[0] == v4s16 ||
752 .libcallFor({{s16, s128},
816 .customForCartesianProduct({s8, s16, s32, s64, p0}, {p0})
822 all(typeInSet(0, {s8, s16, s32, s64, s128}), typeIs(2, p0)));
836 .libcallIf(all(typeInSet(0, {s8, s16, s32, s64, s128}), typeIs(1, p0),
845 .libcallIf(all(typeInSet(0, {s8, s16, s32, s64}), typeIs(1, p0),
916 0, s16)
926 .clampMaxNumElements(1, s16, 8)
944 {v4s16, s16},
945 {v8s16, s16},
1108 .clampMaxNumElements(1, s16, 8)
1118 .clampMaxNumElements(1, s16, 8)
1120 .clampMaxNumElements(1, s16, 4)
1131 {s16, v8s16},
1132 {s16, v4s16},
1138 .clampMaxNumElements(1, s16, 8)
1147 return Query.Types[0] == s16 && (Ty == v8s16 || Ty == v4s16) && HasFP16;
1152 .clampMaxNumElements(1, s16, 8)
1157 .clampMaxNumElements(1, s16, 4)
1166 {s16, v4s16},
1167 {s16, v8s16},
1179 .clampMaxNumElements(1, s16, 8)
1266 // TODO: s16 should be legal with full FP16 support.
1276 return std::pair(0, LLT::fixed_vector(Ty == s16 ? 4 : 2, Ty));