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