Lines Matching defs:S16
284 static const LLT S16 = LLT::scalar(16);
694 S32, S64, S16
698 S32, S64, S16, V2S16
701 const LLT MinScalarFPTy = ST.has16BitInsts() ? S16 : S32;
709 .legalFor({S32, S64, V2S16, S16, V4S16, S1, S128, S256})
716 .clampScalar(0, S16, S256)
726 .legalFor({S64, S32, S16, V2S16})
727 .clampMaxNumElementsStrict(0, S16, 2)
729 .minScalar(0, S16)
734 .legalFor({S32, S16, V2S16})
735 .clampMaxNumElementsStrict(0, S16, 2)
737 .minScalar(0, S16)
744 .legalFor({S64, S32, S16, V2S16})
745 .clampMaxNumElementsStrict(0, S16, 2)
747 .minScalar(0, S16)
752 .legalFor({S32, S16, V2S16})
753 .clampMaxNumElementsStrict(0, S16, 2)
755 .minScalar(0, S16)
762 .legalFor({S32, S16, V2S16}) // Clamp modifier
763 .minScalarOrElt(0, S16)
764 .clampMaxNumElementsStrict(0, S16, 2)
770 .legalFor({S32, S16})
771 .minScalar(0, S16)
777 .legalFor({S32, S16})
779 .minScalar(0, S16)
787 .legalFor({S32, S16}) // Clamp modifier
788 .minScalar(0, S16)
796 .minScalar(0, S16)
863 .legalFor({S32, S1, S64, V2S32, S16, V2S16, V4S16})
882 .legalFor({S1, S32, S64, S16, GlobalPtr,
889 .legalFor({S32, S64, S16})
890 .clampScalar(0, S16, S64);
896 .legalFor({S1, S16})
933 FPOpActions.legalFor({S16, V2S16});
935 FPOpActions.legalFor({S16});
937 TrigActions.customFor({S16});
938 FDIVActions.customFor({S16});
952 .clampMaxNumElements(0, S16, 2)
953 .clampScalar(0, S16, S64)
957 .clampScalar(0, S16, S64)
966 FPOpActions.clampMaxNumElementsStrict(0, S16, 2);
970 .clampScalar(0, ST.has16BitInsts() ? S16 : S32, S64);
974 .clampScalar(0, ST.has16BitInsts() ? S16 : S32, S64);
978 .clampScalar(0, ST.has16BitInsts() ? S16 : S32, S64);
982 .clampMaxNumElementsStrict(0, S16, 2)
984 .clampScalar(0, S16, S64);
988 .legalFor({S16})
993 .legalFor({S32, S64, S16})
995 .clampScalar(0, S16, S64);
998 .legalFor({{S32, S32}, {S64, S32}, {S16, S16}})
1000 .maxScalarIf(typeIs(0, S16), 1, S16)
1005 .customFor({{S32, S32}, {S64, S32}, {S16, S16}, {S16, S32}})
1010 .customFor({S32, S64, S16})
1046 {{S32, S64}, {S16, S32}, {V2S16, V2S32}, {V2S16, V2S64}});
1048 FPTruncActions.legalFor({{S32, S64}, {S16, S32}});
1052 .legalFor({{S64, S32}, {S32, S16}})
1053 .narrowScalarFor({{S64, S16}}, changeTo(0, S32))
1060 .legalFor({S32, S16})
1068 .lowerFor({S64, S16, V2S16});
1078 FMad.customFor({S32, S16});
1082 FMad.customFor({S16});
1088 FRem.customFor({S16, S32, S64});
1099 .clampMaxNumElements(0, S16, 2)
1107 .legalFor({{S64, S32}, {S32, S16}, {S64, S16},
1108 {S32, S1}, {S64, S1}, {S16, S1}})
1115 .legalFor({{S32, S32}, {S64, S32}, {S16, S32}})
1119 IToFP.legalFor({{S16, S16}});
1126 .legalFor({{S32, S32}, {S32, S64}, {S32, S16}})
1128 .narrowScalarFor({{S64, S16}}, changeTo(0, S32));
1130 FPToI.legalFor({{S16, S16}});
1140 .clampScalar(0, S16, S64)
1145 .legalFor({S16, S32})
1155 .clampScalar(0, S16, S64)
1162 .legalFor({S16, S32, S64})
1163 .clampScalar(0, S16, S64)
1208 CmpBuilder.legalFor({{S1, S16}});
1222 FCmpBuilder.legalForCartesianProduct({S32}, {S16, S32});
1232 ExpOps.customFor({{S32}, {S16}});
1245 Log2Ops.legalFor({S16});
1247 Log2Ops.customFor({S16});
1253 LogOps.customFor({S32, S16});
1276 .lowerFor({S1, S16})
1320 .legalFor({S16, S32, V2S16})
1321 .clampMaxNumElementsStrict(0, S16, 2)
1325 .clampScalar(0, S16, S32)
1330 .legalFor({S32, S16, V2S16})
1331 .clampMaxNumElements(0, S16, 2)
1332 .minScalar(0, S16)
1338 .legalFor({S32, S16})
1340 .minScalar(0, S16)
1453 {S32, GlobalPtr, S16, GlobalAlign16},
1459 {S32, LocalPtr, S16, 16},
1464 {S32, PrivatePtr, S16, 16},
1615 {S32, GlobalPtr, S16, 2 * 8},
1617 {S32, LocalPtr, S16, 16},
1619 {S32, PrivatePtr, S16, 16},
1621 {S32, ConstantPtr, S16, 2 * 8}})
1629 {{S32, FlatPtr, S8, 8}, {S32, FlatPtr, S16, 16}});
1715 .legalForCartesianProduct({S32, S64, S16, V2S32, V2S16, V4S16, GlobalPtr,
1720 .clampScalar(0, S16, S64)
1737 Shifts.legalFor({{S16, S16}, {V2S16, V2S16}})
1738 .clampMaxNumElements(0, S16, 2);
1740 Shifts.legalFor({{S16, S16}});
1751 }, changeTo(1, S16));
1752 Shifts.maxScalarIf(typeIs(0, S16), 1, S16);
1755 Shifts.clampScalar(0, S16, S64);
1758 .minScalar(0, S16)
1847 .lowerIf(all(typeIs(LitTyIdx, S16), sizeIs(BigTyIdx, 32)))
1892 .minScalarOrElt(0, S16)
1893 .minScalar(1, S16);
1899 BuildVector.customFor({V2S16, S16});
1913 .clampMaxNumElements(1, S16, 2) // TODO: Make 4?
1914 .clampMaxNumElements(0, S16, 64);
1937 .lowerFor({{S16, V2S16}})
1944 .minScalarOrEltIf(scalarNarrowerThan(LitTyIdx, 16), LitTyIdx, S16)
1947 .fewerElementsIf(all(typeIs(0, S16), vectorWiderThan(1, 32),
1948 elementTypeIs(1, S16)),
2006 .clampMaxNumElementsStrict(0, S16, 2);
2008 SextInReg.lowerFor({{S32}, {S64}, {S16}});
2028 .clampMaxNumElementsStrict(0, S16, 2)
2035 .clampMaxNumElementsStrict(0, S16, 2)
2077 .clampMaxNumElements(0, S16, 2)
3858 const LLT S16 = LLT::scalar(16);
3866 Src0 = B.buildTrunc(S16, MI.getOperand(1).getReg()).getReg(0);
3867 Src1 = B.buildTrunc(S16, MI.getOperand(2).getReg()).getReg(0);
4473 LLT S16 = LLT::scalar(16);
4477 if (DstTy == S16)
4906 LLT S16 = LLT::scalar(16);
4942 auto RDst = B.buildFPTrunc(S16, Quot, Flags);
5777 const LLT S16 = LLT::scalar(16);
5780 assert(StoreVT.isVector() && StoreVT.getElementType() == S16);
5783 auto Unmerge = B.buildUnmerge(S16, Reg);
5807 auto Unmerge = B.buildUnmerge(S16, Reg);
5810 PackedRegs.resize(6, B.buildUndef(S16).getReg(0));
5811 Reg = B.buildBuildVector(LLT::fixed_vector(6, S16), PackedRegs).getReg(0);
5829 if (StoreVT == LLT::fixed_vector(3, S16)) {
5830 Reg = B.buildPadVectorWithUndefElements(LLT::fixed_vector(4, S16), Reg)
5842 const LLT S16 = LLT::scalar(16);
5853 if (Ty == LLT::scalar(8) || Ty == S16) {
5859 if (Ty.getElementType() == S16 && Ty.getNumElements() <= 4) {
6303 const LLT S16 = LLT::scalar(16);
6318 (B.getMRI()->getType(AddrReg) == S16)) {
6323 B.buildBuildVector(V2S16, {AddrReg, B.buildUndef(S16).getReg(0)})
6344 B.buildBuildVector(V2S16, {AddrReg, B.buildUndef(S16).getReg(0)})
6416 const LLT S16 = LLT::scalar(16);
6438 ST.hasG16() ? (BaseOpcode->Gradients && GradTy == S16) : GradTy == S16;
6439 const bool IsA16 = AddrTy == S16;
6440 const bool IsD16 = !IsAtomicPacked16Bit && Ty.getScalarType() == S16;
6747 Reg = B.buildTrunc(S16, Reg).getReg(0);
7026 const LLT S16 = LLT::scalar(16);
7092 auto UnmergeRayDir = B.buildUnmerge({S16, S16, S16}, RayDir);
7093 auto UnmergeRayInvDir = B.buildUnmerge({S16, S16, S16}, RayInvDir);
7132 auto UnmergeRayDir = B.buildUnmerge({S16, S16, S16}, RayDir);
7133 auto UnmergeRayInvDir = B.buildUnmerge({S16, S16, S16}, RayInvDir);