Lines Matching defs:S16
284 static const LLT S16 = LLT::scalar(16);
693 S32, S64, S16
697 S32, S64, S16, V2S16
700 const LLT MinScalarFPTy = ST.has16BitInsts() ? S16 : S32;
708 .legalFor({S32, S64, V2S16, S16, V4S16, S1, S128, S256})
715 .clampScalar(0, S16, S256)
725 .legalFor({S64, S32, S16, V2S16})
726 .clampMaxNumElementsStrict(0, S16, 2)
728 .minScalar(0, S16)
733 .legalFor({S32, S16, V2S16})
734 .clampMaxNumElementsStrict(0, S16, 2)
736 .minScalar(0, S16)
743 .legalFor({S64, S32, S16, V2S16})
744 .clampMaxNumElementsStrict(0, S16, 2)
746 .minScalar(0, S16)
751 .legalFor({S32, S16, V2S16})
752 .clampMaxNumElementsStrict(0, S16, 2)
754 .minScalar(0, S16)
761 .legalFor({S32, S16, V2S16}) // Clamp modifier
762 .minScalarOrElt(0, S16)
763 .clampMaxNumElementsStrict(0, S16, 2)
769 .legalFor({S32, S16})
770 .minScalar(0, S16)
776 .legalFor({S32, S16})
778 .minScalar(0, S16)
786 .legalFor({S32, S16}) // Clamp modifier
787 .minScalar(0, S16)
795 .minScalar(0, S16)
862 .legalFor({S32, S1, S64, V2S32, S16, V2S16, V4S16})
881 .legalFor({S1, S32, S64, S16, GlobalPtr,
888 .legalFor({S32, S64, S16})
889 .clampScalar(0, S16, S64);
895 .legalFor({S1, S16})
931 FPOpActions.legalFor({S16, V2S16});
933 FPOpActions.legalFor({S16});
935 TrigActions.customFor({S16});
936 FDIVActions.customFor({S16});
950 .clampMaxNumElements(0, S16, 2)
951 .clampScalar(0, S16, S64)
955 .clampScalar(0, S16, S64)
964 FPOpActions.clampMaxNumElementsStrict(0, S16, 2);
968 .clampScalar(0, ST.has16BitInsts() ? S16 : S32, S64);
972 .clampScalar(0, ST.has16BitInsts() ? S16 : S32, S64);
976 .clampScalar(0, ST.has16BitInsts() ? S16 : S32, S64);
980 .clampMaxNumElementsStrict(0, S16, 2)
982 .clampScalar(0, S16, S64);
986 .legalFor({S16})
991 .legalFor({S32, S64, S16})
993 .clampScalar(0, S16, S64);
996 .legalFor({{S32, S32}, {S64, S32}, {S16, S16}})
998 .maxScalarIf(typeIs(0, S16), 1, S16)
1003 .customFor({{S32, S32}, {S64, S32}, {S16, S16}, {S16, S32}})
1008 .customFor({S32, S64, S16})
1042 .legalFor({{S32, S64}, {S16, S32}})
1047 .legalFor({{S64, S32}, {S32, S16}})
1048 .narrowScalarFor({{S64, S16}}, changeTo(0, S32))
1055 .legalFor({S32, S16})
1063 .lowerFor({S64, S16, V2S16});
1073 FMad.customFor({S32, S16});
1077 FMad.customFor({S16});
1083 FRem.customFor({S16, S32, S64});
1094 .clampMaxNumElements(0, S16, 2)
1102 .legalFor({{S64, S32}, {S32, S16}, {S64, S16},
1103 {S32, S1}, {S64, S1}, {S16, S1}})
1110 .legalFor({{S32, S32}, {S64, S32}, {S16, S32}})
1114 IToFP.legalFor({{S16, S16}});
1121 .legalFor({{S32, S32}, {S32, S64}, {S32, S16}})
1123 .narrowScalarFor({{S64, S16}}, changeTo(0, S32));
1125 FPToI.legalFor({{S16, S16}});
1135 .customFor({S16, S32})
1147 .legalFor({S16, S32, S64})
1148 .clampScalar(0, S16, S64)
1193 CmpBuilder.legalFor({{S1, S16}});
1207 FCmpBuilder.legalForCartesianProduct({S32}, {S16, S32});
1217 ExpOps.customFor({{S32}, {S16}});
1230 Log2Ops.legalFor({S16});
1232 Log2Ops.customFor({S16});
1238 LogOps.customFor({S32, S16});
1261 .lowerFor({S1, S16})
1305 .legalFor({S16, S32, V2S16})
1306 .clampMaxNumElementsStrict(0, S16, 2)
1310 .clampScalar(0, S16, S32)
1315 .legalFor({S32, S16, V2S16})
1316 .clampMaxNumElements(0, S16, 2)
1317 .minScalar(0, S16)
1323 .legalFor({S32, S16})
1325 .minScalar(0, S16)
1438 {S32, GlobalPtr, S16, GlobalAlign16},
1444 {S32, LocalPtr, S16, 16},
1449 {S32, PrivatePtr, S16, 16},
1600 {S32, GlobalPtr, S16, 2 * 8},
1602 {S32, LocalPtr, S16, 16},
1604 {S32, PrivatePtr, S16, 16},
1606 {S32, ConstantPtr, S16, 2 * 8}})
1614 {{S32, FlatPtr, S8, 8}, {S32, FlatPtr, S16, 16}});
1700 .legalForCartesianProduct({S32, S64, S16, V2S32, V2S16, V4S16, GlobalPtr,
1705 .clampScalar(0, S16, S64)
1722 Shifts.legalFor({{S16, S16}, {V2S16, V2S16}})
1723 .clampMaxNumElements(0, S16, 2);
1725 Shifts.legalFor({{S16, S16}});
1736 }, changeTo(1, S16));
1737 Shifts.maxScalarIf(typeIs(0, S16), 1, S16);
1740 Shifts.clampScalar(0, S16, S64);
1743 .minScalar(0, S16)
1832 .lowerIf(all(typeIs(LitTyIdx, S16), sizeIs(BigTyIdx, 32)))
1877 .minScalarOrElt(0, S16)
1878 .minScalar(1, S16);
1884 BuildVector.customFor({V2S16, S16});
1898 .clampMaxNumElements(1, S16, 2) // TODO: Make 4?
1899 .clampMaxNumElements(0, S16, 64);
1922 .lowerFor({{S16, V2S16}})
1929 .minScalarOrEltIf(scalarNarrowerThan(LitTyIdx, 16), LitTyIdx, S16)
1932 .fewerElementsIf(all(typeIs(0, S16), vectorWiderThan(1, 32),
1933 elementTypeIs(1, S16)),
1991 .clampMaxNumElementsStrict(0, S16, 2);
1993 SextInReg.lowerFor({{S32}, {S64}, {S16}});
2013 .clampMaxNumElementsStrict(0, S16, 2)
2020 .clampMaxNumElementsStrict(0, S16, 2)
2062 .clampMaxNumElements(0, S16, 2)
3839 const LLT S16 = LLT::scalar(16);
3847 Src0 = B.buildTrunc(S16, MI.getOperand(1).getReg()).getReg(0);
3848 Src1 = B.buildTrunc(S16, MI.getOperand(2).getReg()).getReg(0);
4454 LLT S16 = LLT::scalar(16);
4458 if (DstTy == S16)
4887 LLT S16 = LLT::scalar(16);
4898 auto RDst = B.buildFPTrunc(S16, QUOT, Flags);
5718 const LLT S16 = LLT::scalar(16);
5721 assert(StoreVT.isVector() && StoreVT.getElementType() == S16);
5724 auto Unmerge = B.buildUnmerge(S16, Reg);
5748 auto Unmerge = B.buildUnmerge(S16, Reg);
5751 PackedRegs.resize(6, B.buildUndef(S16).getReg(0));
5752 Reg = B.buildBuildVector(LLT::fixed_vector(6, S16), PackedRegs).getReg(0);
5770 if (StoreVT == LLT::fixed_vector(3, S16)) {
5771 Reg = B.buildPadVectorWithUndefElements(LLT::fixed_vector(4, S16), Reg)
5782 const LLT S16 = LLT::scalar(16);
5789 if (Ty == LLT::scalar(8) || Ty == S16) {
5795 if (Ty.getElementType() == S16 && Ty.getNumElements() <= 4) {
6220 const LLT S16 = LLT::scalar(16);
6235 (B.getMRI()->getType(AddrReg) == S16)) {
6240 B.buildBuildVector(V2S16, {AddrReg, B.buildUndef(S16).getReg(0)})
6261 B.buildBuildVector(V2S16, {AddrReg, B.buildUndef(S16).getReg(0)})
6333 const LLT S16 = LLT::scalar(16);
6355 ST.hasG16() ? (BaseOpcode->Gradients && GradTy == S16) : GradTy == S16;
6356 const bool IsA16 = AddrTy == S16;
6357 const bool IsD16 = !IsAtomicPacked16Bit && Ty.getScalarType() == S16;
6664 Reg = B.buildTrunc(S16, Reg).getReg(0);
6931 const LLT S16 = LLT::scalar(16);
6997 auto UnmergeRayDir = B.buildUnmerge({S16, S16, S16}, RayDir);
6998 auto UnmergeRayInvDir = B.buildUnmerge({S16, S16, S16}, RayInvDir);
7037 auto UnmergeRayDir = B.buildUnmerge({S16, S16, S16}, RayDir);
7038 auto UnmergeRayInvDir = B.buildUnmerge({S16, S16, S16}, RayInvDir);