reference, declarationdefinition
definition → references, declarations, derived classes, virtual overrides
reference to multiple definitions → definitions
unreferenced

Declarations

include/llvm/CodeGen/Analysis.h
   28 class LLT;
lib/Target/AMDGPU/AMDGPURegisterBankInfo.h
   27 class LLT;
lib/Target/X86/X86RegisterBankInfo.h
   23 class LLT;

References

gen/lib/Target/AArch64/AArch64GenGlobalISel.inc
  144 const static LLT TypeObjects[] = {
  145   LLT::scalar(16),
  146   LLT::scalar(32),
  147   LLT::scalar(64),
  148   LLT::scalar(128),
  149   LLT::vector(2, 1),
  150   LLT::vector(2, 32),
  151   LLT::vector(2, 64),
  152   LLT::vector(4, 1),
  153   LLT::vector(4, 16),
  154   LLT::vector(4, 32),
  155   LLT::vector(8, 1),
  156   LLT::vector(8, 8),
  157   LLT::vector(8, 16),
  158   LLT::vector(16, 1),
  159   LLT::vector(16, 8),
gen/lib/Target/AMDGPU/AMDGPUGenGlobalISel.inc
  207 const static LLT TypeObjects[] = {
  208   LLT::pointer(0, 64),
  209   LLT::pointer(1, 64),
  210   LLT::pointer(2, 32),
  211   LLT::pointer(3, 32),
  212   LLT::pointer(4, 64),
  213   LLT::pointer(5, 32),
  214   LLT::pointer(6, 32),
  215   LLT::scalar(1),
  216   LLT::scalar(16),
  217   LLT::scalar(32),
  218   LLT::scalar(64),
  219   LLT::vector(2, 16),
  220   LLT::vector(2, 32),
  221   LLT::vector(2, 64),
  222   LLT::vector(3, 32),
  223   LLT::vector(4, 16),
  224   LLT::vector(4, 32),
  225   LLT::vector(5, 32),
  226   LLT::vector(8, 32),
  227   LLT::vector(16, 32),
  228   LLT::vector(32, 32),
gen/lib/Target/ARM/ARMGenGlobalISel.inc
  279 const static LLT TypeObjects[] = {
  280   LLT::scalar(16),
  281   LLT::scalar(32),
  282   LLT::scalar(64),
  283   LLT::vector(2, 32),
  284   LLT::vector(2, 64),
  285   LLT::vector(4, 1),
  286   LLT::vector(4, 16),
  287   LLT::vector(4, 32),
  288   LLT::vector(4, 64),
  289   LLT::vector(8, 1),
  290   LLT::vector(8, 8),
  291   LLT::vector(8, 16),
  292   LLT::vector(8, 64),
  293   LLT::vector(16, 1),
  294   LLT::vector(16, 8),
gen/lib/Target/Mips/MipsGenGlobalISel.inc
  195 const static LLT TypeObjects[] = {
  196   LLT::scalar(16),
  197   LLT::scalar(32),
  198   LLT::scalar(64),
  199   LLT::vector(2, 16),
  200   LLT::vector(2, 64),
  201   LLT::vector(4, 8),
  202   LLT::vector(4, 32),
  203   LLT::vector(8, 16),
  204   LLT::vector(16, 8),
gen/lib/Target/RISCV/RISCVGenGlobalISel.inc
   74 const static LLT TypeObjects[] = {
   75   LLT::scalar(32),
   76   LLT::scalar(64),
gen/lib/Target/X86/X86GenGlobalISel.inc
  421 const static LLT TypeObjects[] = {
  422   LLT::scalar(1),
  423   LLT::scalar(8),
  424   LLT::scalar(16),
  425   LLT::scalar(32),
  426   LLT::scalar(64),
  427   LLT::scalar(80),
  428   LLT::scalar(128),
  429   LLT::vector(2, 1),
  430   LLT::vector(2, 64),
  431   LLT::vector(4, 1),
  432   LLT::vector(4, 32),
  433   LLT::vector(4, 64),
  434   LLT::vector(8, 1),
  435   LLT::vector(8, 16),
  436   LLT::vector(8, 32),
  437   LLT::vector(8, 64),
  438   LLT::vector(16, 1),
  439   LLT::vector(16, 8),
  440   LLT::vector(16, 16),
  441   LLT::vector(16, 32),
  442   LLT::vector(32, 1),
  443   LLT::vector(32, 8),
  444   LLT::vector(32, 16),
  445   LLT::vector(64, 1),
  446   LLT::vector(64, 8),
include/llvm/ADT/ArrayRef.h
   43     using iterator = const T *;
   44     using const_iterator = const T *;
   50     const T *Data = nullptr;
   66     /*implicit*/ ArrayRef(const T &OneElt)
   70     /*implicit*/ ArrayRef(const T *data, size_t length)
   74     ArrayRef(const T *begin, const T *end)
   74     ArrayRef(const T *begin, const T *end)
   81     /*implicit*/ ArrayRef(const SmallVectorTemplateCommon<T, U> &Vec)
   87     /*implicit*/ ArrayRef(const std::vector<T, A> &Vec)
   92     /*implicit*/ constexpr ArrayRef(const std::array<T, N> &Arr)
   97     /*implicit*/ constexpr ArrayRef(const T (&Arr)[N]) : Data(Arr), Length(N) {}
  100     /*implicit*/ ArrayRef(const std::initializer_list<T> &Vec)
  145     const T *data() const { return Data; }
  151     const T &front() const {
  157     const T &back() const {
  163     template <typename Allocator> ArrayRef<T> copy(Allocator &A) {
  178     ArrayRef<T> slice(size_t N, size_t M) const {
  184     ArrayRef<T> slice(size_t N) const { return slice(N, size() - N); }
  187     ArrayRef<T> drop_front(size_t N = 1) const {
  193     ArrayRef<T> drop_back(size_t N = 1) const {
  200     template <class PredicateT> ArrayRef<T> drop_while(PredicateT Pred) const {
  206     template <class PredicateT> ArrayRef<T> drop_until(PredicateT Pred) const {
  211     ArrayRef<T> take_front(size_t N = 1) const {
  218     ArrayRef<T> take_back(size_t N = 1) const {
  226     template <class PredicateT> ArrayRef<T> take_while(PredicateT Pred) const {
  232     template <class PredicateT> ArrayRef<T> take_until(PredicateT Pred) const {
  239     const T &operator[](size_t Index) const {
  249     typename std::enable_if<std::is_same<U, T>::value, ArrayRef<T>>::type &
  257     typename std::enable_if<std::is_same<U, T>::value, ArrayRef<T>>::type &
  263     std::vector<T> vec() const {
  270     operator std::vector<T>() const {
include/llvm/ADT/DenseMap.h
   40 struct DenseMapPair : public std::pair<KeyT, ValueT> {
   43   KeyT &getFirst() { return std::pair<KeyT, ValueT>::first; }
   44   const KeyT &getFirst() const { return std::pair<KeyT, ValueT>::first; }
   65   using key_type = KeyT;
   69   using iterator = DenseMapIterator<KeyT, ValueT, KeyInfoT, BucketT>;
   71       DenseMapIterator<KeyT, ValueT, KeyInfoT, BucketT, true>;
   78     if (shouldReverseIterate<KeyT>())
  145   size_type count(const_arg_type_t<KeyT> Val) const {
  150   iterator find(const_arg_type_t<KeyT> Val) {
  156   const_iterator find(const_arg_type_t<KeyT> Val) const {
  185   ValueT lookup(const_arg_type_t<KeyT> Val) const {
  195   std::pair<iterator, bool> insert(const std::pair<KeyT, ValueT> &KV) {
  202   std::pair<iterator, bool> insert(std::pair<KeyT, ValueT> &&KV) {
  210   std::pair<iterator, bool> try_emplace(KeyT &&Key, Ts &&... Args) {
  229   std::pair<iterator, bool> try_emplace(const KeyT &Key, Ts &&... Args) {
  249   std::pair<iterator, bool> insert_as(std::pair<KeyT, ValueT> &&KV,
  272   bool erase(const KeyT &Val) {
  291   value_type& FindAndConstruct(const KeyT &Key) {
  299   ValueT &operator[](const KeyT &Key) {
  303   value_type& FindAndConstruct(KeyT &&Key) {
  311   ValueT &operator[](KeyT &&Key) {
  334     const KeyT EmptyKey = getEmptyKey(), TombstoneKey = getTombstoneKey();
  349     const KeyT EmptyKey = getEmptyKey();
  351       ::new (&B->getFirst()) KeyT(EmptyKey);
  369     const KeyT EmptyKey = getEmptyKey();
  370     const KeyT TombstoneKey = getTombstoneKey();
  392       const DenseMapBase<OtherBaseT, KeyT, ValueT, KeyInfoT, BucketT> &other) {
  414   static unsigned getHashValue(const KeyT &Val) {
  419   static unsigned getHashValue(const LookupKeyT &Val) {
  423   static const KeyT getEmptyKey() {
  429   static const KeyT getTombstoneKey() {
  437     if (shouldReverseIterate<KeyT>()) {
  447     if (shouldReverseIterate<KeyT>()) {
  515   BucketT *InsertIntoBucket(BucketT *TheBucket, KeyArg &&Key,
  525   BucketT *InsertIntoBucketWithLookup(BucketT *TheBucket, KeyT &&Key,
  535   BucketT *InsertIntoBucketImpl(const KeyT &Key, const LookupKeyT &Lookup,
  535   BucketT *InsertIntoBucketImpl(const KeyT &Key, const LookupKeyT &Lookup,
  566     const KeyT EmptyKey = getEmptyKey();
  578   bool LookupBucketFor(const LookupKeyT &Val,
  590     const KeyT EmptyKey = getEmptyKey();
  591     const KeyT TombstoneKey = getTombstoneKey();
  629   bool LookupBucketFor(const LookupKeyT &Val, BucketT *&FoundBucket) {
  684 class DenseMap : public DenseMapBase<DenseMap<KeyT, ValueT, KeyInfoT, BucketT>,
  685                                      KeyT, ValueT, KeyInfoT, BucketT> {
  690   using BaseT = DenseMapBase<DenseMap, KeyT, ValueT, KeyInfoT, BucketT>;
  852           SmallDenseMap<KeyT, ValueT, InlineBuckets, KeyInfoT, BucketT>, KeyT,
  852           SmallDenseMap<KeyT, ValueT, InlineBuckets, KeyInfoT, BucketT>, KeyT,
 1023       const KeyT EmptyKey = this->getEmptyKey();
 1024       const KeyT TombstoneKey = this->getTombstoneKey();
 1030           ::new (&TmpEnd->getFirst()) KeyT(std::move(P->getFirst()));
 1163   using ConstIterator = DenseMapIterator<KeyT, ValueT, KeyInfoT, Bucket, true>;
 1186     if (shouldReverseIterate<KeyT>()) {
 1199       const DenseMapIterator<KeyT, ValueT, KeyInfoT, Bucket, IsConstSrc> &I)
 1204     if (shouldReverseIterate<KeyT>())
 1210     if (shouldReverseIterate<KeyT>())
 1232     if (shouldReverseIterate<KeyT>()) {
 1249     const KeyT Empty = KeyInfoT::getEmptyKey();
 1250     const KeyT Tombstone = KeyInfoT::getTombstoneKey();
 1259     const KeyT Empty = KeyInfoT::getEmptyKey();
 1260     const KeyT Tombstone = KeyInfoT::getTombstoneKey();
include/llvm/ADT/IndexedMap.h
   34     using StorageT = SmallVector<T, 0>;
   37     T nullVal_;
   43     explicit IndexedMap(const T& val) : nullVal_(val) {}
include/llvm/ADT/SmallVector.h
   75   AlignedCharArrayUnion<T> FirstEl;
  114   using value_type = T;
  115   using iterator = T *;
  116   using const_iterator = const T *;
  121   using reference = T &;
  122   using const_reference = const T &;
  123   using pointer = T *;
  124   using const_pointer = const T *;
  259 class SmallVectorTemplateBase<T, true> : public SmallVectorTemplateCommon<T> {
  264   static void destroy_range(T *, T *) {}
  264   static void destroy_range(T *, T *) {}
  286       T1 *I, T1 *E, T2 *Dest,
  286       T1 *I, T1 *E, T2 *Dest,
  286       T1 *I, T1 *E, T2 *Dest,
  287       typename std::enable_if<std::is_same<typename std::remove_const<T1>::type,
  288                                            T2>::value>::type * = nullptr) {
  294       memcpy(reinterpret_cast<void *>(Dest), I, (E - I) * sizeof(T));
  299   void grow(size_t MinSize = 0) { this->grow_pod(MinSize, sizeof(T)); }
  302   void push_back(const T &Elt) {
  305     memcpy(reinterpret_cast<void *>(this->end()), &Elt, sizeof(T));
  315 class SmallVectorImpl : public SmallVectorTemplateBase<T> {
  316   using SuperClass = SmallVectorTemplateBase<T>;
  352         new (&*I) T();
  357   void resize(size_type N, const T &NV) {
  374   LLVM_NODISCARD T pop_back_val() {
  397   void append(size_type NumInputs, const T &Elt) {
  405   void append(std::initializer_list<T> IL) {
  412   void assign(size_type NumElts, const T &Elt) {
  429   void assign(std::initializer_list<T> IL) {
  467   iterator insert(iterator I, T &&Elt) {
  497   iterator insert(iterator I, const T &Elt) {
  526   iterator insert(iterator I, size_type NumToInsert, const T &Elt) {
  637   void insert(iterator I, std::initializer_list<T> IL) {
  820   AlignedCharArrayUnion<T> InlineElts[N];
  837 class SmallVector : public SmallVectorImpl<T>, SmallVectorStorage<T, N> {
  837 class SmallVector : public SmallVectorImpl<T>, SmallVectorStorage<T, N> {
  846   explicit SmallVector(size_t Size, const T &Value = T())
  865   SmallVector(std::initializer_list<T> IL) : SmallVectorImpl<T>(N) {
  884   SmallVector(SmallVectorImpl<T> &&RHS) : SmallVectorImpl<T>(N) {
include/llvm/CodeGen/Analysis.h
   92                       SmallVectorImpl<LLT> &ValueTys,
include/llvm/CodeGen/GlobalISel/CSEInfo.h
  176   const GISelInstProfileBuilder &addNodeIDRegType(const LLT &Ty) const;
include/llvm/CodeGen/GlobalISel/CombinerHelper.h
   34   LLT Ty;                // The result type of the extend.
include/llvm/CodeGen/GlobalISel/InstructionSelector.h
  420     ISelInfoTy(const LLT *TypeObjects, size_t NumTypeObjects,
  432     const LLT *TypeObjects;
  437     SmallDenseMap<LLT, unsigned, 64> TypeIDMap;
include/llvm/CodeGen/GlobalISel/InstructionSelectorImpl.h
  207       const LLT Ty = MRI.getType(MO.getReg());
  545       const LLT Ty = MRI.getType(MO.getReg());
  620         LLT Ty = MRI.getType(MO.getReg());
include/llvm/CodeGen/GlobalISel/LegalizationArtifactCombiner.h
   81       const LLT &DstTy = MRI.getType(DstReg);
  104       LLT DstTy = MRI.getType(DstReg);
  109       LLT SrcTy = MRI.getType(SrcReg);
  122       const LLT &DstTy = MRI.getType(DstReg);
  145       LLT DstTy = MRI.getType(DstReg);
  149       LLT SrcTy = MRI.getType(SrcReg);
  172       const LLT &DstTy = MRI.getType(DstReg);
  197       LLT DstTy = MRI.getType(DstReg);
  221                                      LLT OpTy, LLT DestTy) {
  221                                      LLT OpTy, LLT DestTy) {
  259     LLT OpTy = MRI.getType(MI.getOperand(NumDefs).getReg());
  260     LLT DestTy = MRI.getType(MI.getOperand(0).getReg());
  300           LLT MergeEltTy
  337       LLT MergeSrcTy = MRI.getType(MergeI->getOperand(1).getReg());
  396     LLT DstTy = MRI.getType(MI.getOperand(0).getReg());
  397     LLT SrcTy = MRI.getType(Src);
  545   bool isConstantUnsupported(LLT Ty) const {
  549     LLT EltTy = Ty.getElementType();
include/llvm/CodeGen/GlobalISel/LegalizerHelper.h
   70   LegalizeResult narrowScalar(MachineInstr &MI, unsigned TypeIdx, LLT NarrowTy);
   75   LegalizeResult widenScalar(MachineInstr &MI, unsigned TypeIdx, LLT WideTy);
   79   LegalizeResult lower(MachineInstr &MI, unsigned TypeIdx, LLT Ty);
   84                                      LLT NarrowTy);
   89                                     LLT MoreTy);
  103   void widenScalarSrc(MachineInstr &MI, LLT WideTy, unsigned OpIdx,
  109   void narrowScalarSrc(MachineInstr &MI, LLT NarrowTy, unsigned OpIdx);
  114   void widenScalarDst(MachineInstr &MI, LLT WideTy, unsigned OpIdx = 0,
  120   void narrowScalarDst(MachineInstr &MI, LLT NarrowTy, unsigned OpIdx,
  125   void moreElementsVectorDst(MachineInstr &MI, LLT MoreTy, unsigned OpIdx);
  130   void moreElementsVectorSrc(MachineInstr &MI, LLT MoreTy, unsigned OpIdx);
  133   widenScalarMergeValues(MachineInstr &MI, unsigned TypeIdx, LLT WideTy);
  135   widenScalarUnmergeValues(MachineInstr &MI, unsigned TypeIdx, LLT WideTy);
  137   widenScalarExtract(MachineInstr &MI, unsigned TypeIdx, LLT WideTy);
  139   widenScalarInsert(MachineInstr &MI, unsigned TypeIdx, LLT WideTy);
  144   void extractParts(Register Reg, LLT Ty, int NumParts,
  148   bool extractParts(Register Reg, LLT RegTy, LLT MainTy,
  148   bool extractParts(Register Reg, LLT RegTy, LLT MainTy,
  149                     LLT &LeftoverTy,
  162   void insertParts(Register DstReg, LLT ResultTy,
  163                    LLT PartTy, ArrayRef<Register> PartRegs,
  164                    LLT LeftoverTy = LLT(), ArrayRef<Register> LeftoverRegs = {});
  171                          ArrayRef<Register> Src2Regs, LLT NarrowTy);
  175                                                 unsigned TypeIdx, LLT NarrowTy);
  180                                           LLT NarrowTy);
  186                                                  unsigned TypeIdx, LLT NarrowTy);
  189                                           LLT NarrowTy);
  192   fewerElementsVectorCmp(MachineInstr &MI, unsigned TypeIdx, LLT NarrowTy);
  195   fewerElementsVectorSelect(MachineInstr &MI, unsigned TypeIdx, LLT NarrowTy);
  198                                         unsigned TypeIdx, LLT NarrowTy);
  201                                        LLT MoreTy);
  205                                                   LLT NarrowTy);
  208                                                 LLT NarrowTy);
  211   reduceLoadStoreWidth(MachineInstr &MI, unsigned TypeIdx, LLT NarrowTy);
  214                                              LLT HalfTy, LLT ShiftAmtTy);
  214                                              LLT HalfTy, LLT ShiftAmtTy);
  216   LegalizeResult narrowScalarShift(MachineInstr &MI, unsigned TypeIdx, LLT Ty);
  217   LegalizeResult narrowScalarMul(MachineInstr &MI, LLT Ty);
  218   LegalizeResult narrowScalarExtract(MachineInstr &MI, unsigned TypeIdx, LLT Ty);
  219   LegalizeResult narrowScalarInsert(MachineInstr &MI, unsigned TypeIdx, LLT Ty);
  221   LegalizeResult narrowScalarBasic(MachineInstr &MI, unsigned TypeIdx, LLT Ty);
  222   LegalizeResult narrowScalarSelect(MachineInstr &MI, unsigned TypeIdx, LLT Ty);
  224   LegalizeResult lowerBitCount(MachineInstr &MI, unsigned TypeIdx, LLT Ty);
  227   LegalizeResult lowerUITOFP(MachineInstr &MI, unsigned TypeIdx, LLT Ty);
  228   LegalizeResult lowerSITOFP(MachineInstr &MI, unsigned TypeIdx, LLT Ty);
  229   LegalizeResult lowerFPTOUI(MachineInstr &MI, unsigned TypeIdx, LLT Ty);
  230   LegalizeResult lowerMinMax(MachineInstr &MI, unsigned TypeIdx, LLT Ty);
  231   LegalizeResult lowerFCopySign(MachineInstr &MI, unsigned TypeIdx, LLT Ty);
include/llvm/CodeGen/GlobalISel/LegalizerInfo.h
  105   LLT Type;
  107   InstrAspect(unsigned Opcode, LLT Type) : Opcode(Opcode), Type(Type) {}
  108   InstrAspect(unsigned Opcode, unsigned Idx, LLT Type)
  122   ArrayRef<LLT> Types;
  134   constexpr LegalityQuery(unsigned Opcode, const ArrayRef<LLT> Types,
  137   constexpr LegalityQuery(unsigned Opcode, const ArrayRef<LLT> Types)
  152   LLT NewType;
  155                      const LLT &NewType)
  166     std::function<std::pair<unsigned, LLT>(const LegalityQuery &)>;
  170   LLT Type0;
  171   LLT Type1;
  203 LegalityPredicate typeIs(unsigned TypeIdx, LLT TypesInit);
  206                             std::initializer_list<LLT> TypesInit);
  211               std::initializer_list<std::pair<LLT, LLT>> TypesInit);
  211               std::initializer_list<std::pair<LLT, LLT>> TypesInit);
  266 LegalizeMutation changeTo(unsigned TypeIdx, LLT Ty);
  275 LegalizeMutation changeElementTo(unsigned TypeIdx, LLT Ty);
  310   std::pair<unsigned, LLT> determineMutation(const LegalityQuery &Query) const {
  390                              std::initializer_list<LLT> Types) {
  397                              std::initializer_list<LLT> Types,
  406                              std::initializer_list<std::pair<LLT, LLT>> Types) {
  406                              std::initializer_list<std::pair<LLT, LLT>> Types) {
  414                              std::initializer_list<std::pair<LLT, LLT>> Types,
  414                              std::initializer_list<std::pair<LLT, LLT>> Types,
  424                                            std::initializer_list<LLT> Types) {
  433                                              std::initializer_list<LLT> Types) {
  444                             std::initializer_list<LLT> Types0,
  445                             std::initializer_list<LLT> Types1) {
  455       LegalizeAction Action, std::initializer_list<LLT> Types0,
  456       std::initializer_list<LLT> Types1, std::initializer_list<LLT> Types2) {
  456       std::initializer_list<LLT> Types1, std::initializer_list<LLT> Types2) {
  484   LegalizeRuleSet &legalFor(std::initializer_list<LLT> Types) {
  489   LegalizeRuleSet &legalFor(std::initializer_list<std::pair<LLT, LLT>> Types) {
  489   LegalizeRuleSet &legalFor(std::initializer_list<std::pair<LLT, LLT>> Types) {
  494   LegalizeRuleSet &legalForTypeWithAnyImm(std::initializer_list<LLT> Types) {
  509   LegalizeRuleSet &legalForCartesianProduct(std::initializer_list<LLT> Types) {
  514   LegalizeRuleSet &legalForCartesianProduct(std::initializer_list<LLT> Types0,
  515                                             std::initializer_list<LLT> Types1) {
  520   LegalizeRuleSet &legalForCartesianProduct(std::initializer_list<LLT> Types0,
  521                                             std::initializer_list<LLT> Types1,
  522                                             std::initializer_list<LLT> Types2) {
  560   LegalizeRuleSet &lowerFor(std::initializer_list<LLT> Types) {
  566   LegalizeRuleSet &lowerFor(std::initializer_list<LLT> Types,
  572   LegalizeRuleSet &lowerFor(std::initializer_list<std::pair<LLT, LLT>> Types) {
  572   LegalizeRuleSet &lowerFor(std::initializer_list<std::pair<LLT, LLT>> Types) {
  578   LegalizeRuleSet &lowerFor(std::initializer_list<std::pair<LLT, LLT>> Types,
  578   LegalizeRuleSet &lowerFor(std::initializer_list<std::pair<LLT, LLT>> Types,
  584   LegalizeRuleSet &lowerForCartesianProduct(std::initializer_list<LLT> Types0,
  585                                             std::initializer_list<LLT> Types1) {
  591   LegalizeRuleSet &lowerForCartesianProduct(std::initializer_list<LLT> Types0,
  592                                             std::initializer_list<LLT> Types1,
  593                                             std::initializer_list<LLT> Types2) {
  606   LegalizeRuleSet &libcallFor(std::initializer_list<LLT> Types) {
  610   libcallFor(std::initializer_list<std::pair<LLT, LLT>> Types) {
  610   libcallFor(std::initializer_list<std::pair<LLT, LLT>> Types) {
  614   libcallForCartesianProduct(std::initializer_list<LLT> Types) {
  618   libcallForCartesianProduct(std::initializer_list<LLT> Types0,
  619                              std::initializer_list<LLT> Types1) {
  683   LegalizeRuleSet &customFor(std::initializer_list<LLT> Types) {
  689   LegalizeRuleSet &customFor(std::initializer_list<std::pair<LLT, LLT>> Types) {
  689   LegalizeRuleSet &customFor(std::initializer_list<std::pair<LLT, LLT>> Types) {
  693   LegalizeRuleSet &customForCartesianProduct(std::initializer_list<LLT> Types) {
  697   customForCartesianProduct(std::initializer_list<LLT> Types0,
  698                             std::initializer_list<LLT> Types1) {
  740   LegalizeRuleSet &minScalarOrElt(unsigned TypeIdx, const LLT &Ty) {
  750                                     unsigned TypeIdx, const LLT &Ty) {
  760   LegalizeRuleSet &minScalar(unsigned TypeIdx, const LLT &Ty) {
  769   LegalizeRuleSet &maxScalarOrElt(unsigned TypeIdx, const LLT &Ty) {
  778   LegalizeRuleSet &maxScalar(unsigned TypeIdx, const LLT &Ty) {
  790                                const LLT &Ty) {
  802   LegalizeRuleSet &clampScalar(unsigned TypeIdx, const LLT &MinTy,
  803                                const LLT &MaxTy) {
  809   LegalizeRuleSet &clampScalarOrElt(unsigned TypeIdx, const LLT &MinTy,
  810                                     const LLT &MaxTy) {
  823           LLT T = Query.Types[LargeTypeIdx];
  840           LLT T = Query.Types[LargeTypeIdx];
  856   LegalizeRuleSet &clampMinNumElements(unsigned TypeIdx, const LLT &EltTy,
  863           LLT VecTy = Query.Types[TypeIdx];
  868           LLT VecTy = Query.Types[TypeIdx];
  870               TypeIdx, LLT::vector(MinElements, VecTy.getElementType()));
  874   LegalizeRuleSet &clampMaxNumElements(unsigned TypeIdx, const LLT &EltTy,
  881           LLT VecTy = Query.Types[TypeIdx];
  886           LLT VecTy = Query.Types[TypeIdx];
  887           LLT NewTy = LLT::scalarOrVector(MaxElements, VecTy.getElementType());
  887           LLT NewTy = LLT::scalarOrVector(MaxElements, VecTy.getElementType());
  897   LegalizeRuleSet &clampNumElements(unsigned TypeIdx, const LLT &MinTy,
  898                                     const LLT &MaxTy) {
  902     const LLT &EltTy = MinTy.getElementType();
 1166   std::pair<LegalizeAction, LLT>
 1317   std::pair<LegalizeAction, LLT>
 1321   std::pair<LegalizeAction, LLT>
 1328   using TypeMap = DenseMap<LLT, LegalizeAction>;
include/llvm/CodeGen/GlobalISel/MIPatternMatch.h
  135   static bool bind(const MachineRegisterInfo &MRI, LLT &Ty, unsigned Reg) {
  154   Class &VR;
  156   bind_ty(Class &V) : VR(V) {}
  165 inline bind_ty<LLT> m_Type(LLT &Ty) { return Ty; }
  165 inline bind_ty<LLT> m_Type(LLT &Ty) { return Ty; }
  325   LLT Ty;
  326   CheckType(const LLT &Ty) : Ty(Ty) {}
  333 inline CheckType m_SpecificType(LLT Ty) { return Ty; }
include/llvm/CodeGen/GlobalISel/MachineIRBuilder.h
   61     LLT LLTTy;
   71   DstOp(const LLT &T) : LLTTy(T), Ty(DstType::Ty_LLT) {}
   88   LLT getLLTTy(const MachineRegisterInfo &MRI) const {
  159   LLT getLLTTy(const MachineRegisterInfo &MRI) const {
  226   void validateTruncExt(const LLT &Dst, const LLT &Src, bool IsExtend);
  226   void validateTruncExt(const LLT &Dst, const LLT &Src, bool IsExtend);
  228   void validateBinaryOp(const LLT &Res, const LLT &Op0, const LLT &Op1);
  228   void validateBinaryOp(const LLT &Res, const LLT &Op0, const LLT &Op1);
  228   void validateBinaryOp(const LLT &Res, const LLT &Op0, const LLT &Op1);
  229   void validateShiftOp(const LLT &Res, const LLT &Op0, const LLT &Op1);
  229   void validateShiftOp(const LLT &Res, const LLT &Op0, const LLT &Op1);
  229   void validateShiftOp(const LLT &Res, const LLT &Op0, const LLT &Op1);
  231   void validateSelectOp(const LLT &ResTy, const LLT &TstTy, const LLT &Op0Ty,
  231   void validateSelectOp(const LLT &ResTy, const LLT &TstTy, const LLT &Op0Ty,
  231   void validateSelectOp(const LLT &ResTy, const LLT &TstTy, const LLT &Op0Ty,
  232                         const LLT &Op1Ty);
  438                                                const LLT &ValueTy,
  796   MachineInstrBuilder buildUnmerge(ArrayRef<LLT> Res, const SrcOp &Op);
  800   MachineInstrBuilder buildUnmerge(LLT Res, const SrcOp &Op);
 1470   MachineInstrBuilder buildJumpTable(const LLT PtrTy, unsigned JTI);
include/llvm/CodeGen/GlobalISel/Utils.h
  172 MVT getMVTForLLT(LLT Ty);
  174 LLT getLLTForMVT(MVT Ty);
include/llvm/CodeGen/LowLevelType.h
   27 LLT getLLTForType(Type &Ty, const DataLayout &DL);
include/llvm/CodeGen/MachineInstr.h
 1508   LLT getTypeToPrint(unsigned OpIdx, SmallBitVector &PrintedTypes,
include/llvm/CodeGen/MachineOperand.h
  296   void print(raw_ostream &os, ModuleSlotTracker &MST, LLT TypeToPrint,
  303   void print(raw_ostream &os, LLT TypeToPrint,
include/llvm/CodeGen/MachineRegisterInfo.h
  138   using VRegToTypeMap = IndexedMap<LLT, VirtReg2IndexFunctor>;
  729   LLT getType(unsigned Reg) const {
  736   void setType(unsigned VReg, LLT Ty);
  740   Register createGenericVirtualRegister(LLT Ty, StringRef Name = "");
include/llvm/CodeGen/TargetLowering.h
 1473       LLT, unsigned AddrSpace = 0, unsigned Align = 1,
 1537   virtual LLT
include/llvm/Support/AlignOf.h
   30   T t;
   39 template <typename T> union SizerImpl<T> { char arr[sizeof(T)]; };
   50       llvm::detail::SizerImpl<T, Ts...>)];
include/llvm/Support/LowLevelTypeImpl.h
   42   static LLT scalar(unsigned SizeInBits) {
   49   static LLT pointer(unsigned AddressSpace, unsigned SizeInBits) {
   57   static LLT vector(uint16_t NumElements, unsigned ScalarSizeInBits) {
   65   static LLT vector(uint16_t NumElements, LLT ScalarTy) {
   65   static LLT vector(uint16_t NumElements, LLT ScalarTy) {
   73   static LLT scalarOrVector(uint16_t NumElements, LLT ScalarTy) {
   73   static LLT scalarOrVector(uint16_t NumElements, LLT ScalarTy) {
   74     return NumElements == 1 ? ScalarTy : LLT::vector(NumElements, ScalarTy);
   77   static LLT scalarOrVector(uint16_t NumElements, unsigned ScalarSize) {
   78     return scalarOrVector(NumElements, LLT::scalar(ScalarSize));
  120   LLT getScalarType() const {
  126   LLT changeElementType(LLT NewEltTy) const {
  126   LLT changeElementType(LLT NewEltTy) const {
  127     return isVector() ? LLT::vector(getNumElements(), NewEltTy) : NewEltTy;
  133   LLT changeElementSize(unsigned NewEltSize) const {
  136     return isVector() ? LLT::vector(getNumElements(), NewEltSize)
  137                       : LLT::scalar(NewEltSize);
  165   LLT getElementType() const {
  175   bool operator==(const LLT &RHS) const {
  180   bool operator!=(const LLT &RHS) const { return !(*this == RHS); }
  275 inline raw_ostream& operator<<(raw_ostream &OS, const LLT &Ty) {
  281   static inline LLT getEmptyKey() {
  282     LLT Invalid;
  286   static inline LLT getTombstoneKey() {
  287     LLT Invalid;
  291   static inline unsigned getHashValue(const LLT &Ty) {
  295   static bool isEqual(const LLT &LHS, const LLT &RHS) {
  295   static bool isEqual(const LLT &LHS, const LLT &RHS) {
include/llvm/Support/type_traits.h
   65   using type = const T &;
   91     T t;
  122     static auto get(F*) -> decltype(std::declval<F &>() = std::declval<const F &>(), std::true_type{});
  122     static auto get(F*) -> decltype(std::declval<F &>() = std::declval<const F &>(), std::true_type{});
  122     static auto get(F*) -> decltype(std::declval<F &>() = std::declval<const F &>(), std::true_type{});
  130     static auto get(F*) -> decltype(std::declval<F &>() = std::declval<F &&>(), std::true_type{});
  130     static auto get(F*) -> decltype(std::declval<F &>() = std::declval<F &&>(), std::true_type{});
  130     static auto get(F*) -> decltype(std::declval<F &>() = std::declval<F &&>(), std::true_type{});
  145       std::is_copy_constructible<detail::trivial_helper<T>>::value;
  147       !std::is_copy_constructible<T>::value;
  151       std::is_move_constructible<detail::trivial_helper<T>>::value;
  153       !std::is_move_constructible<T>::value;
  157       is_copy_assignable<detail::trivial_helper<T>>::value;
  159       !is_copy_assignable<T>::value;
  163       is_move_assignable<detail::trivial_helper<T>>::value;
  165       !is_move_assignable<T>::value;
  169       std::is_destructible<detail::trivial_helper<T>>::value;
  181   static_assert(value == std::is_trivially_copyable<T>::value,
lib/CodeGen/Analysis.cpp
  128                             SmallVectorImpl<LLT> &ValueTys,
lib/CodeGen/GlobalISel/CSEInfo.cpp
  284 GISelInstProfileBuilder::addNodeIDRegType(const LLT &Ty) const {
  339     LLT Ty = MRI.getType(Reg);
lib/CodeGen/GlobalISel/CSEMIRBuilder.cpp
  211   LLT Ty = Res.getLLTTy(*getMRI());
  238   LLT Ty = Res.getLLTTy(*getMRI());
lib/CodeGen/GlobalISel/CallLowering.cpp
  133   LLT PackedLLT = getLLTForType(*PackedTy, DL);
  135   SmallVector<LLT, 8> LLTs;
  158   SmallVector<LLT, 8> LLTs;
  227           LLT NewLLT = getLLTForMVT(NewVT);
  259         LLT SmallTy = LLT::scalar(NewVT.getSizeInBits());
  259         LLT SmallTy = LLT::scalar(NewVT.getSizeInBits());
  322         const LLT VATy(VAVT);
  330           const LLT OrigTy(OrigVT);
  456   LLT LocTy{VA.getLocVT()};
lib/CodeGen/GlobalISel/CombinerHelper.cpp
   77   LLT DstTy = MRI.getType(DstReg);
   78   LLT SrcTy = MRI.getType(SrcReg);
  132       LLT OpType = MRI.getType(Reg);
  189   LLT DstType = MRI.getType(MI.getOperand(0).getReg());
  191   LLT SrcType = MRI.getType(Src1);
  268                                   const LLT &TyForCandidate,
  374   LLT LoadValueTy = MRI.getType(LoadValue.getReg());
  472       const LLT &UseDstTy = MRI.getType(UseDstReg);
  814     std::vector<LLT> &MemOps, unsigned Limit, uint64_t Size, unsigned DstAlign,
  828   LLT Ty = TLI.getOptimalMemOpLLT(Size, DstAlign, SrcAlign, IsMemset,
  835     Ty = LLT::scalar(64);
  838       Ty = LLT::scalar(Ty.getSizeInBytes());
  848       LLT NewTy = Ty;
  852         NewTy = NewTy.getSizeInBits() > 64 ? LLT::scalar(64) : LLT::scalar(32);
  852         NewTy = NewTy.getSizeInBits() > 64 ? LLT::scalar(64) : LLT::scalar(32);
  853       NewTy = LLT::scalar(PowerOf2Floor(NewTy.getSizeInBits() - 1));
  883 static Type *getTypeForLLT(LLT Ty, LLVMContext &C) {
  891 static Register getMemsetValue(Register Val, LLT Ty, MachineIRBuilder &MIB) {
  907   LLT ExtType = Ty.getScalarType();
  938   std::vector<LLT> MemOps;
  969   LLT LargestTy = MemOps[0];
  984   LLT PtrTy = MRI.getType(Dst);
  988     LLT Ty = MemOps[I];
 1018           MIB.buildConstant(LLT::scalar(PtrTy.getSizeInBits()), DstOff);
 1057   std::vector<LLT> MemOps;
 1104   LLT PtrTy = MRI.getType(Src);
 1106   for (auto CopyTy : MemOps) {
 1122       Offset = MIB.buildConstant(LLT::scalar(PtrTy.getSizeInBits()), CurrOffset)
 1161   std::vector<LLT> MemOps;
 1209   LLT PtrTy = MRI.getType(Src);
 1211   for (auto CopyTy : MemOps) {
 1220           MIB.buildConstant(LLT::scalar(PtrTy.getSizeInBits()), CurrOffset);
 1229     LLT CopyTy = MemOps[I];
 1237           MIB.buildConstant(LLT::scalar(PtrTy.getSizeInBits()), CurrOffset);
lib/CodeGen/GlobalISel/GISelKnownBits.cpp
   71   LLT Ty = MRI.getType(R);
   79   LLT Ty = MRI.getType(R);
   95   LLT DstTy = MRI.getType(R);
  184     LLT Ty = MRI.getType(MI.getOperand(1).getReg());
  351     LLT SrcTy = MRI.getType(SrcReg);
lib/CodeGen/GlobalISel/IRTranslator.cpp
  165   SmallVector<LLT, 4> SplitTys;
  188   SmallVector<LLT, 4> SplitTys;
  193     for (auto Ty : SplitTys)
  516   const LLT PtrTy = getLLTForType(*PtrIRTy, *DL);
  531   const LLT SwitchTy = getLLTForType(*SValue.getType(), *DL);
  539   const LLT PtrScalarTy = LLT::scalar(DL->getTypeSizeInBits(PtrIRTy));
  539   const LLT PtrScalarTy = LLT::scalar(DL->getTypeSizeInBits(PtrIRTy));
  556   auto Cmp = MIB.buildICmp(CmpInst::ICMP_UGT, LLT::scalar(1), Sub, Cst);
  587   const LLT i1Ty = LLT::scalar(1);
  587   const LLT i1Ty = LLT::scalar(1);
  605       const LLT &CmpTy = MRI->getType(CmpOpReg);
  874   LLT OffsetTy = getLLTForType(*OffsetIRTy, *DL);
  916   LLT OffsetTy = getLLTForType(*OffsetIRTy, *DL);
 1058   LLT PtrTy = getLLTForType(*PtrIRTy, *DL);
 1060   LLT OffsetTy = getLLTForType(*OffsetIRTy, *DL);
 1081         LLT OffsetTy = getLLTForType(*OffsetIRTy, *DL);
 1421       LLT Ty = getLLTForType(*CI.getType(), *DL);
 1450     LLT PtrTy = getLLTForType(*CI.getArgOperand(0)->getType(), *DL);
 1509     LLT PtrTy = getLLTForType(*CI.getArgOperand(0)->getType(), *DL);
 1555       LLT Ty = getLLTForType(*Arg->getType(), *DL);
 1754   LLT Ty = getLLTForType(*LP.getType(), *DL);
 1758   SmallVector<LLT, 2> Tys;
 1810   LLT IntPtrTy = getLLTForType(*IntPtrIRTy, *DL);
 1910     const LLT &VecIdxTy = LLT::scalar(PreferredVecIdxWidth);
 1910     const LLT &VecIdxTy = LLT::scalar(PreferredVecIdxWidth);
 2082   SmallVector<LLT, 4> SplitTys;
lib/CodeGen/GlobalISel/InstructionSelect.cpp
  207     const LLT Ty = MRI.getType(VReg);
lib/CodeGen/GlobalISel/LegalityPredicates.cpp
   17 LegalityPredicate LegalityPredicates::typeIs(unsigned TypeIdx, LLT Type) {
   24                               std::initializer_list<LLT> TypesInit) {
   25   SmallVector<LLT, 4> Types = TypesInit;
   33     std::initializer_list<std::pair<LLT, LLT>> TypesInit) {
   33     std::initializer_list<std::pair<LLT, LLT>> TypesInit) {
   34   SmallVector<std::pair<LLT, LLT>, 4> Types = TypesInit;
   34   SmallVector<std::pair<LLT, LLT>, 4> Types = TypesInit;
   36     std::pair<LLT, LLT> Match = {Query.Types[TypeIdx0], Query.Types[TypeIdx1]};
   36     std::pair<LLT, LLT> Match = {Query.Types[TypeIdx0], Query.Types[TypeIdx1]};
   78     LLT Ty = Query.Types[TypeIdx];
   86     const LLT QueryTy = Query.Types[TypeIdx];
   94     const LLT QueryTy = Query.Types[TypeIdx];
  102     const LLT QueryTy = Query.Types[TypeIdx];
  110     const LLT QueryTy = Query.Types[TypeIdx];
  117     const LLT QueryTy = Query.Types[TypeIdx];
  124     const LLT QueryTy = Query.Types[TypeIdx];
  145     const LLT QueryTy = Query.Types[TypeIdx];
lib/CodeGen/GlobalISel/LegalizeMutations.cpp
   17 LegalizeMutation LegalizeMutations::changeTo(unsigned TypeIdx, LLT Ty) {
   32     const LLT OldTy = Query.Types[TypeIdx];
   33     const LLT NewTy = Query.Types[FromTypeIdx];
   39                                                     LLT NewEltTy) {
   41     const LLT OldTy = Query.Types[TypeIdx];
   49     const LLT Ty = Query.Types[TypeIdx];
   59     const LLT VecTy = Query.Types[TypeIdx];
   63                           LLT::vector(NewNumElements, VecTy.getElementType()));
lib/CodeGen/GlobalISel/LegalizerHelper.cpp
   41 getNarrowTypeBreakDown(LLT OrigTy, LLT NarrowTy, LLT &LeftoverTy) {
   41 getNarrowTypeBreakDown(LLT OrigTy, LLT NarrowTy, LLT &LeftoverTy) {
   41 getNarrowTypeBreakDown(LLT OrigTy, LLT NarrowTy, LLT &LeftoverTy) {
   57     LeftoverTy = LLT::scalarOrVector(LeftoverSize / EltSize, EltSize);
   59     LeftoverTy = LLT::scalar(LeftoverSize);
  123 void LegalizerHelper::extractParts(Register Reg, LLT Ty, int NumParts,
  130 bool LegalizerHelper::extractParts(Register Reg, LLT RegTy,
  131                                    LLT MainTy, LLT &LeftoverTy,
  131                                    LLT MainTy, LLT &LeftoverTy,
  153     LeftoverTy = LLT::scalarOrVector(LeftoverSize / EltSize, EltSize);
  155     LeftoverTy = LLT::scalar(LeftoverSize);
  175 static LLT getGCDType(LLT OrigTy, LLT TargetTy) {
  175 static LLT getGCDType(LLT OrigTy, LLT TargetTy) {
  175 static LLT getGCDType(LLT OrigTy, LLT TargetTy) {
  180     return LLT::scalarOrVector(GCD, OrigTy.getElementType());
  192   return LLT::scalar(GCD);
  196                                   LLT ResultTy, LLT PartTy,
  196                                   LLT ResultTy, LLT PartTy,
  198                                   LLT LeftoverTy,
  403     LLT OpLLT = MRI.getType(Reg);
  491   LLT LLTy = MRI.getType(MI.getOperand(0).getReg());
  599                                                               LLT NarrowTy) {
  629     LLT Ty = MRI.getType(MI.getOperand(0).getReg());
  643     LLT LeftoverTy;
  647       LeftoverTy = LLT::scalar(LeftoverBits);
  665     LLT SrcTy = MRI.getType(SrcReg);
  677         MIRBuilder.buildConstant(LLT::scalar(64), NarrowTy.getSizeInBits() - 1);
  687     LLT SrcTy = MRI.getType(MI.getOperand(1).getReg());
  734       Register CarryOut = MRI.createGenericVirtualRegister(LLT::scalar(1));
  767     Register BorrowOut = MRI.createGenericVirtualRegister(LLT::scalar(1));
  774       BorrowOut = MRI.createGenericVirtualRegister(LLT::scalar(1));
  796     LLT DstTy = MRI.getType(DstReg);
  842     LLT SrcTy = MRI.getType(SrcReg);
  966     LLT ResTy = MRI.getType(MI.getOperand(0).getReg());
 1081 void LegalizerHelper::widenScalarSrc(MachineInstr &MI, LLT WideTy,
 1088 void LegalizerHelper::narrowScalarSrc(MachineInstr &MI, LLT NarrowTy,
 1096 void LegalizerHelper::widenScalarDst(MachineInstr &MI, LLT WideTy,
 1105 void LegalizerHelper::narrowScalarDst(MachineInstr &MI, LLT NarrowTy,
 1114 void LegalizerHelper::moreElementsVectorDst(MachineInstr &MI, LLT WideTy,
 1123 void LegalizerHelper::moreElementsVectorSrc(MachineInstr &MI, LLT MoreTy,
 1127   LLT OldTy = MRI.getType(MO.getReg());
 1155                                         LLT WideTy) {
 1160   LLT DstTy = MRI.getType(DstReg);
 1165   LLT SrcTy = MRI.getType(Src1);
 1227   LLT GCDTy = LLT::scalar(GCD);
 1227   LLT GCDTy = LLT::scalar(GCD);
 1232   LLT WideDstTy = LLT::scalar(NumMerge * WideSize);
 1232   LLT WideDstTy = LLT::scalar(NumMerge * WideSize);
 1277                                           LLT WideTy) {
 1283   LLT SrcTy = MRI.getType(SrcReg);
 1288   LLT DstTy = MRI.getType(Dst0Reg);
 1293   LLT NewSrcTy = LLT::scalar(NewSrcSize);
 1293   LLT NewSrcTy = LLT::scalar(NewSrcSize);
 1317                                     LLT WideTy) {
 1320   LLT SrcTy = MRI.getType(SrcReg);
 1322   LLT DstTy = MRI.getType(DstReg);
 1337       LLT SrcAsIntTy = LLT::scalar(SrcTy.getSizeInBits());
 1337       LLT SrcAsIntTy = LLT::scalar(SrcTy.getSizeInBits());
 1354     LLT ShiftTy = SrcTy;
 1396                                    LLT WideTy) {
 1407 LegalizerHelper::widenScalar(MachineInstr &MI, unsigned TypeIdx, LLT WideTy) {
 1434     LLT OrigTy = MRI.getType(MI.getOperand(0).getReg());
 1463     LLT CurTy = MRI.getType(SrcReg);
 1503     LLT Ty = MRI.getType(DstReg);
 1519     LLT Ty = MRI.getType(DstReg);
 1662     LLT Ty = MRI.getType(MI.getOperand(0).getReg());
 1777       LLT VecTy = MRI.getType(VecReg);
 1780       widenScalarSrc(MI, LLT::vector(VecTy.getNumElements(),
 1802       LLT VecTy = MRI.getType(VecReg);
 1803       LLT WideVecTy = LLT::vector(VecTy.getNumElements(), WideTy);
 1803       LLT WideVecTy = LLT::vector(VecTy.getNumElements(), WideTy);
 1880     const LLT WideEltTy = TypeIdx == 1 ? WideTy : WideTy.getElementType();
 1909 LegalizerHelper::lower(MachineInstr &MI, unsigned TypeIdx, LLT Ty) {
 2044     LLT DstTy = MRI.getType(DstReg);
 2076         LLT PtrTy = MRI.getType(PtrReg);
 2078         LLT AnyExtTy = LLT::scalar(AnyExtSize);
 2078         LLT AnyExtTy = LLT::scalar(AnyExtSize);
 2085             MIRBuilder.buildConstant(LLT::scalar(64), LargeSplitSize / 8);
 2105           MRI.createGenericVirtualRegister(LLT::scalar(MMO.getSizeInBits()));
 2135     LLT SrcTy = MRI.getType(SrcReg);
 2145     const LLT ExtendTy = LLT::scalar(NextPowerOf2(SrcTy.getSizeInBits()));
 2145     const LLT ExtendTy = LLT::scalar(NextPowerOf2(SrcTy.getSizeInBits()));
 2155     LLT PtrTy = MRI.getType(PtrReg);
 2157         MIRBuilder.buildConstant(LLT::scalar(64), LargeSplitSize / 8);
 2228     Register LHS_EQ_RHS = MRI.createGenericVirtualRegister(LLT::scalar(1));
 2229     Register LHS_ULT_RHS = MRI.createGenericVirtualRegister(LLT::scalar(1));
 2265     LLT DstTy = MRI.getType(DstReg);
 2286     MachineInstr &MI, unsigned TypeIdx, LLT NarrowTy) {
 2315                                           LLT NarrowTy) {
 2321   const LLT DstTy = MRI.getType(DstReg);
 2324   const LLT EltTy = DstTy.getElementType();
 2420   MachineInstr &MI, unsigned TypeIdx, LLT NarrowTyArg) {
 2424   const LLT NarrowTy0 = NarrowTyArg;
 2429   LLT DstTy = MRI.getType(DstReg);
 2430   LLT LeftoverTy0;
 2445     LLT LeftoverTy;
 2447     LLT SrcTyI = MRI.getType(SrcReg);
 2448     LLT NarrowTyI = LLT::scalarOrVector(NewNumElts, SrcTyI.getScalarType());
 2448     LLT NarrowTyI = LLT::scalarOrVector(NewNumElts, SrcTyI.getScalarType());
 2449     LLT LeftoverTyI;
 2504                                           LLT NarrowTy) {
 2510   LLT DstTy = MRI.getType(DstReg);
 2511   LLT SrcTy = MRI.getType(SrcReg);
 2513   LLT NarrowTy0 = NarrowTy;
 2514   LLT NarrowTy1;
 2523     NarrowTy1 = LLT::vector(NumParts, SrcTy.getElementType().getSizeInBits());
 2553                                         LLT NarrowTy) {
 2556   LLT DstTy = MRI.getType(DstReg);
 2557   LLT SrcTy = MRI.getType(Src0Reg);
 2560   LLT NarrowTy0, NarrowTy1;
 2569       LLT::vector(NarrowTy.getNumElements(), SrcTy.getScalarSizeInBits()) :
 2578     NarrowTy0 = LLT::vector(NarrowTy.getNumElements(),
 2620                                            LLT NarrowTy) {
 2625   LLT NarrowTy0, NarrowTy1;
 2627   LLT DstTy = MRI.getType(DstReg);
 2628   LLT CondTy = MRI.getType(CondReg);
 2650         NarrowTy1 = LLT::vector(CondTy.getNumElements() / NumParts,
 2692                                         LLT NarrowTy) {
 2694   LLT PhiTy = MRI.getType(DstReg);
 2695   LLT LeftoverTy;
 2713     LLT Ty = I < NumParts ? NarrowTy : LeftoverTy;
 2738     LLT Unused;
 2760                                                   LLT NarrowTy) {
 2766   LLT SrcTy = MRI.getType(SrcReg);
 2768   LLT DstTy = MRI.getType(MI.getOperand(0).getReg());
 2774   LLT GCDTy = getGCDType(SrcTy, NarrowTy);
 2800                                                 LLT NarrowTy) {
 2803   LLT DstTy = MRI.getType(DstReg);
 2804   LLT SrcTy = DstTy.getElementType();
 2809   LLT WidenedDstTy = LLT::vector(NarrowNumElts * NumConcat, SrcTy);
 2809   LLT WidenedDstTy = LLT::vector(NarrowNumElts * NumConcat, SrcTy);
 2858                                       LLT NarrowTy) {
 2874   LLT ValTy = MRI.getType(ValReg);
 2878   LLT LeftoverTy;
 2893   const LLT OffsetTy = LLT::scalar(MRI.getType(AddrReg).getScalarSizeInBits());
 2893   const LLT OffsetTy = LLT::scalar(MRI.getType(AddrReg).getScalarSizeInBits());
 2945                                      LLT NarrowTy) {
 3043                                              const LLT HalfTy, const LLT AmtTy) {
 3043                                              const LLT HalfTy, const LLT AmtTy) {
 3055   LLT NVT = HalfTy;
 3132                                    LLT RequestedTy) {
 3141   LLT DstTy = MRI.getType(DstReg);
 3146   LLT ShiftAmtTy = MRI.getType(Amt);
 3155   const LLT HalfTy = LLT::scalar(NewBitSize);
 3155   const LLT HalfTy = LLT::scalar(NewBitSize);
 3156   const LLT CondTy = LLT::scalar(1);
 3156   const LLT CondTy = LLT::scalar(1);
 3242                                        LLT MoreTy) {
 3261                                     LLT MoreTy) {
 3326     LLT DstTy = MRI.getType(MI.getOperand(0).getReg());
 3352                                         LLT NarrowTy) {
 3389           B.buildUAddo(NarrowTy, LLT::scalar(1), Factors[0], Factors[1]);
 3394             B.buildUAddo(NarrowTy, LLT::scalar(1), FactorSum, Factors[i]);
 3413 LegalizerHelper::narrowScalarMul(MachineInstr &MI, LLT NarrowTy) {
 3418   LLT Ty = MRI.getType(DstReg);
 3449                                      LLT NarrowTy) {
 3496       SegReg = MRI.createGenericVirtualRegister(LLT::scalar(SegSize));
 3514                                     LLT NarrowTy) {
 3568       SegReg = MRI.createGenericVirtualRegister(LLT::scalar(SegSize));
 3589                                    LLT NarrowTy) {
 3591   LLT DstTy = MRI.getType(DstReg);
 3598   LLT LeftoverTy;
 3603   LLT Unused;
 3630                                     LLT NarrowTy) {
 3635   LLT CondTy = MRI.getType(CondReg);
 3640   LLT DstTy = MRI.getType(DstReg);
 3645   LLT LeftoverTy;
 3650   LLT Unused;
 3675 LegalizerHelper::lowerBitCount(MachineInstr &MI, unsigned TypeIdx, LLT Ty) {
 3701       auto MIBICmp = MIRBuilder.buildICmp(CmpInst::ICMP_EQ, LLT::scalar(1),
 3752       auto MIBICmp = MIRBuilder.buildICmp(CmpInst::ICMP_EQ, LLT::scalar(1),
 3793   const LLT S64 = LLT::scalar(64);
 3793   const LLT S64 = LLT::scalar(64);
 3794   const LLT S32 = LLT::scalar(32);
 3794   const LLT S32 = LLT::scalar(32);
 3795   const LLT S1 = LLT::scalar(1);
 3795   const LLT S1 = LLT::scalar(1);
 3846 LegalizerHelper::lowerUITOFP(MachineInstr &MI, unsigned TypeIdx, LLT Ty) {
 3849   LLT DstTy = MRI.getType(Dst);
 3850   LLT SrcTy = MRI.getType(Src);
 3852   if (SrcTy != LLT::scalar(64))
 3855   if (DstTy == LLT::scalar(32)) {
 3867 LegalizerHelper::lowerSITOFP(MachineInstr &MI, unsigned TypeIdx, LLT Ty) {
 3870   LLT DstTy = MRI.getType(Dst);
 3871   LLT SrcTy = MRI.getType(Src);
 3873   const LLT S64 = LLT::scalar(64);
 3873   const LLT S64 = LLT::scalar(64);
 3874   const LLT S32 = LLT::scalar(32);
 3874   const LLT S32 = LLT::scalar(32);
 3875   const LLT S1 = LLT::scalar(1);
 3875   const LLT S1 = LLT::scalar(1);
 3905 LegalizerHelper::lowerFPTOUI(MachineInstr &MI, unsigned TypeIdx, LLT Ty) {
 3908   LLT DstTy = MRI.getType(Dst);
 3909   LLT SrcTy = MRI.getType(Src);
 3910   const LLT S64 = LLT::scalar(64);
 3910   const LLT S64 = LLT::scalar(64);
 3911   const LLT S32 = LLT::scalar(32);
 3911   const LLT S32 = LLT::scalar(32);
 3962 LegalizerHelper::lowerMinMax(MachineInstr &MI, unsigned TypeIdx, LLT Ty) {
 3968   LLT CmpType = MRI.getType(Dst).changeElementSize(1);
 3978 LegalizerHelper::lowerFCopySign(MachineInstr &MI, unsigned TypeIdx, LLT Ty) {
 3983   const LLT Src0Ty = MRI.getType(Src0);
 3984   const LLT Src1Ty = MRI.getType(Src1);
 4033   LLT Ty = MRI.getType(Dst);
 4059   LLT Ty = MRI.getType(DstReg);
 4073   LLT SrcTy = MRI.getType(SrcReg);
 4076   LLT DstTy = MRI.getType(Dst0Reg);
 4082     LLT IntTy = LLT::scalar(SrcTy.getSizeInBits());
 4082     LLT IntTy = LLT::scalar(SrcTy.getSizeInBits());
 4107   LLT Src0Ty = MRI.getType(Src0Reg);
 4108   LLT DstTy = MRI.getType(DstReg);
 4109   LLT IdxTy = LLT::scalar(32);
 4109   LLT IdxTy = LLT::scalar(32);
 4134   LLT EltTy = DstTy.getElementType();
 4170   LLT PtrTy = MRI.getType(Dst);
 4171   LLT IntPtrTy = LLT::scalar(PtrTy.getSizeInBits());
 4171   LLT IntPtrTy = LLT::scalar(PtrTy.getSizeInBits());
 4202   LLT DstTy = MRI.getType(Dst);
 4203   LLT SrcTy = MRI.getType(Src);
 4208     LLT SrcIntTy = SrcTy;
 4210       SrcIntTy = LLT::scalar(SrcTy.getSizeInBits());
 4235   LLT DstTy = MRI.getType(Src);
 4236   LLT InsertTy = MRI.getType(InsertSrc);
 4241     LLT IntDstTy = DstTy;
 4243       IntDstTy = LLT::scalar(DstTy.getSizeInBits());
 4276   LLT Ty = MRI.getType(Dst0);
 4277   LLT BoolTy = MRI.getType(Dst1);
lib/CodeGen/GlobalISel/LegalizerInfo.cpp
   86   for (const auto &Type : Types) {
  103                              const std::pair<unsigned, LLT> &Mutation) {
  119                            std::pair<unsigned, LLT> Mutation) {
  126   const LLT OldTy = Q.Types[TypeIdx];
  127   const LLT NewTy = Mutation.second;
  190       std::pair<unsigned, LLT> Mutation = Rule.determineMutation(Query);
  300         const LLT Type = LLT2Action.first;
  378 std::pair<LegalizeAction, LLT>
  390 static LLT getTypeFromTypeIdx(const MachineInstr &MI,
  478   SmallVector<LLT, 2> Types;
  494     LLT Ty = getTypeFromTypeIdx(MI, MRI, i, TypeIdx);
  618 std::pair<LegalizeAction, LLT>
  642           Aspect.Type.isScalar() ? LLT::scalar(SizeAndAction.first)
  643                                  : LLT::pointer(Aspect.Type.getAddressSpace(),
  647 std::pair<LegalizeAction, LLT>
  661   LLT IntermediateType;
  665       LLT::vector(Aspect.Type.getNumElements(), ElementSizeAndAction.first);
  678           LLT::vector(NumElementsAndAction.first,
lib/CodeGen/GlobalISel/MachineIRBuilder.cpp
  204 MachineInstrBuilder MachineIRBuilder::buildJumpTable(const LLT PtrTy,
  210 void MachineIRBuilder::validateBinaryOp(const LLT &Res, const LLT &Op0,
  210 void MachineIRBuilder::validateBinaryOp(const LLT &Res, const LLT &Op0,
  211                                         const LLT &Op1) {
  216 void MachineIRBuilder::validateShiftOp(const LLT &Res, const LLT &Op0,
  216 void MachineIRBuilder::validateShiftOp(const LLT &Res, const LLT &Op0,
  217                                        const LLT &Op1) {
  234                                  const LLT &ValueTy, uint64_t Value) {
  288   LLT Ty = Res.getLLTTy(*getMRI());
  289   LLT EltTy = Ty.getScalarType();
  316   LLT Ty = Res.getLLTTy(*getMRI());
  317   LLT EltTy = Ty.getScalarType();
  347   LLT DstTy = Res.getLLTTy(*getMRI());
  492   LLT SrcTy = Src.getLLTTy(*getMRI());
  493   LLT DstTy = Dst.getLLTTy(*getMRI());
  513   LLT SrcTy = Src.getLLTTy(*getMRI());
  514   LLT DstTy = Dst.getLLTTy(*getMRI());
  548   LLT ResTy = getMRI()->getType(Res);
  549   LLT OpTy = getMRI()->getType(Ops[0]);
  590 MachineInstrBuilder MachineIRBuilder::buildUnmerge(ArrayRef<LLT> Res,
  600 MachineInstrBuilder MachineIRBuilder::buildUnmerge(LLT Res,
  747   LLT OldValResTy = getMRI()->getType(OldValRes);
  748   LLT SuccessResTy = getMRI()->getType(SuccessRes);
  749   LLT AddrTy = getMRI()->getType(Addr);
  750   LLT CmpValTy = getMRI()->getType(CmpVal);
  751   LLT NewValTy = getMRI()->getType(NewVal);
  775   LLT OldValResTy = getMRI()->getType(OldValRes);
  776   LLT AddrTy = getMRI()->getType(Addr);
  777   LLT CmpValTy = getMRI()->getType(CmpVal);
  778   LLT NewValTy = getMRI()->getType(NewVal);
  801   LLT OldValResTy = OldValRes.getLLTTy(*getMRI());
  802   LLT AddrTy = Addr.getLLTTy(*getMRI());
  803   LLT ValTy = Val.getLLTTy(*getMRI());
  918 void MachineIRBuilder::validateTruncExt(const LLT &DstTy, const LLT &SrcTy,
  918 void MachineIRBuilder::validateTruncExt(const LLT &DstTy, const LLT &SrcTy,
  937 void MachineIRBuilder::validateSelectOp(const LLT &ResTy, const LLT &TstTy,
  937 void MachineIRBuilder::validateSelectOp(const LLT &ResTy, const LLT &TstTy,
  938                                         const LLT &Op0Ty, const LLT &Op1Ty) {
  938                                         const LLT &Op0Ty, const LLT &Op1Ty) {
lib/CodeGen/GlobalISel/RegBankSelect.cpp
  173     LLT RegTy = MRI->getType(MO.getReg());
lib/CodeGen/GlobalISel/RegisterBankInfo.cpp
  470     LLT OrigTy = MRI.getType(OrigReg);
  471     LLT NewTy = MRI.getType(NewReg);
  706     NewVReg = MRI.createGenericVirtualRegister(LLT::scalar(PartMap->Length));
lib/CodeGen/GlobalISel/Utils.cpp
  306   auto DstTy = MRI.getType(DefMI->getOperand(0).getReg());
  311     auto SrcTy = MRI.getType(SrcReg);
  344     LLT Ty = MRI.getType(Op1);
  419     LLT Ty = MRI.getType(Op1);
  435 MVT llvm::getMVTForLLT(LLT Ty) {
  444 LLT llvm::getLLTForMVT(MVT Ty) {
  446     return LLT::scalar(Ty.getSizeInBits());
  448   return LLT::vector(Ty.getVectorNumElements(),
lib/CodeGen/LowLevelType.cpp
   20 LLT llvm::getLLTForType(Type &Ty, const DataLayout &DL) {
   23     LLT ScalarTy = getLLTForType(*VTy->getElementType(), DL);
   26     return LLT::vector(NumElements, ScalarTy);
   28     return LLT::pointer(PTy->getAddressSpace(), DL.getTypeSizeInBits(&Ty));
   34     return LLT::scalar(SizeInBits);
lib/CodeGen/MIRParser/MIParser.cpp
  426   bool parseLowLevelType(StringRef::iterator Loc, LLT &Ty);
 1430         LLT Ty;
 1449     LLT Ty;
 1519 bool MIParser::parseLowLevelType(StringRef::iterator Loc, LLT &Ty) {
 1531     Ty = LLT::scalar(ScalarSize);
 1540     Ty = LLT::pointer(AS, DL.getPointerSizeInBits(AS));
 1573     Ty = LLT::scalar(ScalarSize);
 1580     Ty = LLT::pointer(AS, DL.getPointerSizeInBits(AS));
 1589   Ty = LLT::vector(NumElements, Ty);
lib/CodeGen/MIRPrinter.cpp
  166              LLT TypeToPrint, bool PrintDef = true);
  820                       bool ShouldPrintRegisterTies, LLT TypeToPrint,
lib/CodeGen/MachineInstr.cpp
 1423 LLT MachineInstr::getTypeToPrint(unsigned OpIdx, SmallBitVector &PrintedTypes,
 1439   LLT TypeToPrint = MRI.getType(Op.getReg());
 1507     LLT TypeToPrint = MRI ? getTypeToPrint(StartOp, PrintedTypes, *MRI) : LLT{};
 1562     LLT TypeToPrint = MRI ? getTypeToPrint(OpIdx, PrintedTypes, *MRI) : LLT{};
 1601         LLT TypeToPrint = MRI ? getTypeToPrint(i, PrintedTypes, *MRI) : LLT{};
 1612         LLT TypeToPrint = MRI ? getTypeToPrint(i, PrintedTypes, *MRI) : LLT{};
 1676       LLT TypeToPrint = MRI ? getTypeToPrint(i, PrintedTypes, *MRI) : LLT{};
lib/CodeGen/MachineOperand.cpp
  732 void MachineOperand::print(raw_ostream &OS, LLT TypeToPrint,
  743                            LLT TypeToPrint, bool PrintDef, bool IsStandalone,
lib/CodeGen/MachineRegisterInfo.cpp
   95   const LLT RegTy = getType(Reg);
   96   const LLT ConstrainingRegTy = getType(ConstrainingReg);
  182 void MachineRegisterInfo::setType(unsigned VReg, LLT Ty) {
  188 MachineRegisterInfo::createGenericVirtualRegister(LLT Ty, StringRef Name) {
lib/CodeGen/MachineVerifier.cpp
  234     bool verifyVectorElementMatch(LLT Ty0, LLT Ty1, const MachineInstr *MI);
  234     bool verifyVectorElementMatch(LLT Ty0, LLT Ty1, const MachineInstr *MI);
  247                 LLT MOVRegType = LLT{});
  510                              unsigned MONum, LLT MOVRegType) {
  897 bool MachineVerifier::verifyVectorElementMatch(LLT Ty0, LLT Ty1,
  897 bool MachineVerifier::verifyVectorElementMatch(LLT Ty0, LLT Ty1,
  925   SmallVector<LLT, 4> Types;
  941     LLT OpTy = MRI->getType(MO->getReg());
  979     LLT DstTy = MRI->getType(MI->getOperand(0).getReg());
 1011     LLT ValTy = MRI->getType(MI->getOperand(0).getReg());
 1012     LLT PtrTy = MRI->getType(MI->getOperand(1).getReg());
 1039     LLT DstTy = MRI->getType(MI->getOperand(0).getReg());
 1045                        LLT Ty = MRI->getType(MO.getReg());
 1056     LLT DstTy = MRI->getType(MI->getOperand(0).getReg());
 1057     LLT SrcTy = MRI->getType(MI->getOperand(1).getReg());
 1071     LLT DstTy = MRI->getType(MI->getOperand(0).getReg());
 1072     LLT SrcTy = MRI->getType(MI->getOperand(1).getReg());
 1104     LLT DstTy = MRI->getType(MI->getOperand(0).getReg());
 1105     LLT PtrTy = MRI->getType(MI->getOperand(1).getReg());
 1106     LLT OffsetTy = MRI->getType(MI->getOperand(2).getReg());
 1131     LLT DstTy = MRI->getType(MI->getOperand(0).getReg());
 1132     LLT SrcTy = MRI->getType(MI->getOperand(1).getReg());
 1136     LLT DstElTy = DstTy.getScalarType();
 1137     LLT SrcElTy = SrcTy.getScalarType();
 1160     LLT SelTy = MRI->getType(MI->getOperand(0).getReg());
 1161     LLT CondTy = MRI->getType(MI->getOperand(1).getReg());
 1175     LLT DstTy = MRI->getType(MI->getOperand(0).getReg());
 1176     LLT SrcTy = MRI->getType(MI->getOperand(1).getReg());
 1192     LLT DstTy = MRI->getType(MI->getOperand(0).getReg());
 1193     LLT SrcTy = MRI->getType(MI->getOperand(MI->getNumOperands()-1).getReg());
 1209     LLT DstTy = MRI->getType(MI->getOperand(0).getReg());
 1210     LLT SrcEltTy = MRI->getType(MI->getOperand(1).getReg());
 1233     LLT DstTy = MRI->getType(MI->getOperand(0).getReg());
 1234     LLT SrcEltTy = MRI->getType(MI->getOperand(1).getReg());
 1253     LLT DstTy = MRI->getType(MI->getOperand(0).getReg());
 1254     LLT SrcTy = MRI->getType(MI->getOperand(1).getReg());
 1270     LLT DstTy = MRI->getType(MI->getOperand(0).getReg());
 1271     LLT SrcTy = MRI->getType(MI->getOperand(2).getReg());
 1328     LLT DstTy = MRI->getType(MI->getOperand(0).getReg());
 1393     LLT DstTy = MRI->getType(MI->getOperand(0).getReg());
 1394     LLT SrcTy = MRI->getType(MI->getOperand(1).getReg());
 1423     LLT DstTy = MRI->getType(MI->getOperand(0).getReg());
 1424     LLT Src0Ty = MRI->getType(MI->getOperand(1).getReg());
 1425     LLT Src1Ty = MRI->getType(MI->getOperand(2).getReg());
 1544     LLT DstTy = MRI->getType(DstOp.getReg());
 1545     LLT SrcTy = MRI->getType(SrcOp.getReg());
 1724         LLT Ty = MRI->getType(Reg);
lib/CodeGen/TargetRegisterInfo.cpp
  481     LLT Ty = MRI.getType(Reg);
lib/Support/LowLevelType.cpp
   48 const constexpr LLT::BitFieldInfo LLT::ScalarSizeFieldInfo;
   49 const constexpr LLT::BitFieldInfo LLT::PointerSizeFieldInfo;
   50 const constexpr LLT::BitFieldInfo LLT::PointerAddressSpaceFieldInfo;
   51 const constexpr LLT::BitFieldInfo LLT::VectorElementsFieldInfo;
   52 const constexpr LLT::BitFieldInfo LLT::VectorSizeFieldInfo;
   53 const constexpr LLT::BitFieldInfo LLT::PointerVectorElementsFieldInfo;
   54 const constexpr LLT::BitFieldInfo LLT::PointerVectorSizeFieldInfo;
   55 const constexpr LLT::BitFieldInfo LLT::PointerVectorAddressSpaceFieldInfo;
lib/Target/AArch64/AArch64CallLowering.cpp
   65     Register AddrReg = MRI.createGenericVirtualRegister(LLT::pointer(0, 64));
  144     LLT p0 = LLT::pointer(0, 64);
  144     LLT p0 = LLT::pointer(0, 64);
  145     LLT s64 = LLT::scalar(64);
  145     LLT s64 = LLT::scalar(64);
  180       ValVReg = MIRBuilder.buildAnyExt(LLT::scalar(Size * 8), ValVReg)
  296         CurVReg = MIRBuilder.buildZExt(LLT::scalar(8), CurVReg).getReg(0);
  309           LLT NewLLT(NewVT);
  310           LLT OldLLT(MVT::getVT(CurArgInfo.Ty));
lib/Target/AArch64/AArch64ISelLowering.cpp
 1151     LLT Ty, unsigned AddrSpace, unsigned Align, MachineMemOperand::Flags Flags,
 1170             Ty == LLT::vector(2, 64);
 9060 LLT AArch64TargetLowering::getOptimalMemOpLLT(
 9083     return LLT::vector(2, 64);
 9085     return LLT::scalar(128);
 9087     return LLT::scalar(64);
 9089     return LLT::scalar(32);
lib/Target/AArch64/AArch64ISelLowering.h
  290     LLT Ty, unsigned AddrSpace, unsigned Align, MachineMemOperand::Flags Flags,
  378   LLT getOptimalMemOpLLT(uint64_t Size, unsigned DstAlign, unsigned SrcAlign,
lib/Target/AArch64/AArch64InstructionSelector.cpp
  151                                      const RegisterBank &DstRB, LLT ScalarTy,
  304 getRegClassForTypeOnBank(LLT Ty, const RegisterBank &RB,
  406   LLT Ty = MRI.getType(I.getOperand(0).getReg());
  755 static unsigned selectFPConvOpc(unsigned GenericOpc, LLT DstTy, LLT SrcTy) {
  755 static unsigned selectFPConvOpc(unsigned GenericOpc, LLT DstTy, LLT SrcTy) {
  836   LLT Ty = MRI.getType(I.getOperand(0).getReg());
  837   if (Ty == LLT::scalar(32))
  839   else if (Ty == LLT::scalar(64) || Ty == LLT::pointer(0, 64))
  839   else if (Ty == LLT::scalar(64) || Ty == LLT::pointer(0, 64))
 1013   const LLT Ty = MRI.getType(DstReg);
 1021   if (Ty == LLT::vector(2, 64)) {
 1023   } else if (Ty == LLT::vector(4, 32)) {
 1025   } else if (Ty == LLT::vector(2, 32)) {
 1043   const LLT Ty = MRI.getType(DstReg);
 1057   if (Ty == LLT::vector(2, 64)) {
 1061   } else if (Ty == LLT::vector(4, 32)) {
 1065   } else if (Ty == LLT::vector(2, 32)) {
 1171     const LLT ShiftTy = MRI.getType(ShiftReg);
 1172     const LLT SrcTy = MRI.getType(SrcReg);
 1209   const LLT DstTy = MRI.getType(I.getOperand(0).getReg());
 1254   LLT DefDstTy = MRI.getType(DefDstReg);
 1256   LLT StoreSrcTy = MRI.getType(StoreSrcReg);
 1297     LLT Ty = MRI.getType(DefReg);
 1298     if (Ty != LLT::scalar(64) && Ty != LLT::scalar(32))
 1298     if (Ty != LLT::scalar(64) && Ty != LLT::scalar(32))
 1301     if (Ty == LLT::scalar(64)) {
 1334       const LLT DefTy = MRI.getType(DefReg);
 1388   LLT Ty =
 1450     LLT DstTy = MRI.getType(DstReg);
 1488     const LLT s8 = LLT::scalar(8);
 1488     const LLT s8 = LLT::scalar(8);
 1489     const LLT s16 = LLT::scalar(16);
 1489     const LLT s16 = LLT::scalar(16);
 1490     const LLT s32 = LLT::scalar(32);
 1490     const LLT s32 = LLT::scalar(32);
 1491     const LLT s64 = LLT::scalar(64);
 1491     const LLT s64 = LLT::scalar(64);
 1492     const LLT p0 = LLT::pointer(0, 64);
 1492     const LLT p0 = LLT::pointer(0, 64);
 1495     const LLT DefTy = MRI.getType(DefReg);
 1582     LLT SrcTy = MRI.getType(SrcReg);
 1583     LLT DstTy = MRI.getType(DstReg);
 1611           DstReg, DstRB, LLT::scalar(64), SrcReg, LaneIdx, MIB);
 1628     DstReg = MRI.createGenericVirtualRegister(LLT::scalar(64));
 1640     LLT SrcTy = MRI.getType(I.getOperand(2).getReg());
 1641     LLT DstTy = MRI.getType(I.getOperand(0).getReg());
 1660     Register SrcReg = MRI.createGenericVirtualRegister(LLT::scalar(64));
 1675     if (Ty != LLT::pointer(0, 64)) {
 1722     LLT PtrTy = MRI.getType(I.getOperand(1).getReg());
 1724     if (PtrTy != LLT::pointer(0, 64)) {
 1835     if (Ty != LLT::scalar(64)) {
 1943     const LLT DstTy = MRI.getType(I.getOperand(0).getReg());
 1944     const LLT SrcTy = MRI.getType(I.getOperand(1).getReg());
 1977       } else if (Opcode == TargetOpcode::G_TRUNC && DstTy == LLT::scalar(32) &&
 1978                  SrcTy == LLT::scalar(64)) {
 1993       if (DstTy == LLT::vector(4, 16) && SrcTy == LLT::vector(4, 32)) {
 1993       if (DstTy == LLT::vector(4, 16) && SrcTy == LLT::vector(4, 32)) {
 2002             DstReg, DstRB, LLT::scalar(DstTy.getSizeInBits()), SrcReg, 0, MIB);
 2063     const LLT DstTy = MRI.getType(DefReg);
 2064     const LLT SrcTy = MRI.getType(SrcReg);
 2131     const LLT DstTy = MRI.getType(I.getOperand(0).getReg()),
 2158     if (MRI.getType(I.getOperand(1).getReg()) != LLT::scalar(1)) {
 2194     if (Ty != LLT::scalar(32)) {
 2211     if (Ty != LLT::scalar(32)) {
 2281     const LLT DstTy = MRI.getType(I.getOperand(0).getReg());
 2402   const LLT SrcTy = MRI.getType(I.getOperand(0).getReg());
 2457   const LLT SrcTy = MRI.getType(I.getOperand(0).getReg());
 2513   LLT DstTy = MRI.getType(DstReg);
 2516   LLT SrcTy = MRI.getType(SrcReg);
 2712   const LLT DstTy = MRI.getType(I.getOperand(0).getReg());
 2713   const LLT SrcTy = MRI.getType(I.getOperand(1).getReg());
 2721   if (DstTy == LLT::scalar(128)) {
 2805     Optional<Register> DstReg, const RegisterBank &DstRB, LLT ScalarTy,
 2824   const LLT &VecTy = MRI.getType(VecReg);
 2869   const LLT NarrowTy = MRI.getType(DstReg);
 2871   const LLT WideTy = MRI.getType(SrcReg);
 2908   const LLT NarrowTy = MRI.getType(I.getOperand(0).getReg());
 2909   const LLT SrcTy = MRI.getType(SrcReg);
 2953   const LLT NarrowTy = MRI.getType(I.getOperand(0).getReg());
 2954   const LLT WideTy = MRI.getType(SrcReg);
 3239   LLT CmpTy = MRI.getType(LHS.getReg());
 3242   if (CmpTy == LLT::scalar(32)) {
 3245   } else if (CmpTy == LLT::scalar(64) || CmpTy.isPointer()) {
 3280   const LLT Op1Ty = MRI.getType(Op1);
 3281   const LLT Op2Ty = MRI.getType(Op2);
 3300   const LLT ScalarTy = LLT::scalar(Op1Ty.getSizeInBits());
 3300   const LLT ScalarTy = LLT::scalar(Op1Ty.getSizeInBits());
 3611   LLT VecTy = MRI.getType(I.getOperand(0).getReg());
 3612   LLT EltTy = VecTy.getElementType();
 3651   const LLT DstTy = MRI.getType(I.getOperand(0).getReg());
 3653   const LLT Src1Ty = MRI.getType(Src1Reg);
 3655   const LLT Src2Ty = MRI.getType(Src2Reg);
 3779   const LLT DstTy = MRI.getType(DstReg);
 3784   const LLT EltTy = MRI.getType(EltReg);
 3854   const LLT DstTy = MRI.getType(I.getOperand(0).getReg());
 3855   const LLT EltTy = MRI.getType(I.getOperand(1).getReg());
lib/Target/AArch64/AArch64LegalizerInfo.cpp
   35   const LLT p0 = LLT::pointer(0, 64);
   35   const LLT p0 = LLT::pointer(0, 64);
   36   const LLT s1 = LLT::scalar(1);
   36   const LLT s1 = LLT::scalar(1);
   37   const LLT s8 = LLT::scalar(8);
   37   const LLT s8 = LLT::scalar(8);
   38   const LLT s16 = LLT::scalar(16);
   38   const LLT s16 = LLT::scalar(16);
   39   const LLT s32 = LLT::scalar(32);
   39   const LLT s32 = LLT::scalar(32);
   40   const LLT s64 = LLT::scalar(64);
   40   const LLT s64 = LLT::scalar(64);
   41   const LLT s128 = LLT::scalar(128);
   41   const LLT s128 = LLT::scalar(128);
   42   const LLT s256 = LLT::scalar(256);
   42   const LLT s256 = LLT::scalar(256);
   43   const LLT s512 = LLT::scalar(512);
   43   const LLT s512 = LLT::scalar(512);
   44   const LLT v16s8 = LLT::vector(16, 8);
   44   const LLT v16s8 = LLT::vector(16, 8);
   45   const LLT v8s8 = LLT::vector(8, 8);
   45   const LLT v8s8 = LLT::vector(8, 8);
   46   const LLT v4s8 = LLT::vector(4, 8);
   46   const LLT v4s8 = LLT::vector(4, 8);
   47   const LLT v8s16 = LLT::vector(8, 16);
   47   const LLT v8s16 = LLT::vector(8, 16);
   48   const LLT v4s16 = LLT::vector(4, 16);
   48   const LLT v4s16 = LLT::vector(4, 16);
   49   const LLT v2s16 = LLT::vector(2, 16);
   49   const LLT v2s16 = LLT::vector(2, 16);
   50   const LLT v2s32 = LLT::vector(2, 32);
   50   const LLT v2s32 = LLT::vector(2, 32);
   51   const LLT v4s32 = LLT::vector(4, 32);
   51   const LLT v4s32 = LLT::vector(4, 32);
   52   const LLT v2s64 = LLT::vector(2, 64);
   52   const LLT v2s64 = LLT::vector(2, 64);
   53   const LLT v2p0 = LLT::vector(2, p0);
   53   const LLT v2p0 = LLT::vector(2, p0);
   72         LLT EltTy = Query.Types[0].getElementType();
   74           return std::make_pair(0, LLT::vector(2, 64));
  122         const auto &SrcTy = Query.Types[0];
  123         const auto &AmtTy = Query.Types[1];
  160             const auto &Ty = Query.Types[0];
  187         const LLT &Ty0 = Query.Types[0];
  188         const LLT &Ty1 = Query.Types[1];
  205         const LLT &Ty0 = Query.Types[0];
  206         const LLT &Ty1 = Query.Types[1];
  239     const LLT &ValTy = Query.Types[0];
  242     const LLT EltTy = ValTy.getElementType();
  324             const LLT &Ty = Query.Types[0];
  325             const LLT &SrcTy = Query.Types[1];
  356     const LLT &SrcTy = Query.Types[1];
  470       const LLT &Ty = Query.Types[TypeIdx];
  472         const LLT &EltTy = Ty.getElementType();
  502               const LLT &Ty = Query.Types[BigTyIdx];
  509               const LLT &Ty = Query.Types[BigTyIdx];
  517               return std::make_pair(BigTyIdx, LLT::scalar(NewSizeInBits));
  528           const LLT &BigTy = Query.Types[BigTyIdx];
  529           const LLT &LitTy = Query.Types[LitTyIdx];
  543         const LLT &EltTy = Query.Types[1].getElementType();
  548         const LLT &VecTy = Query.Types[1];
  555         const LLT &VecTy = Query.Types[0];
  583         const LLT &DstTy = Query.Types[0];
  584         const LLT &SrcTy = Query.Types[1];
  678   auto ExtCst = MIRBuilder.buildZExt(LLT::scalar(64), AmtReg);
  698   const LLT ValTy = MRI.getType(ValReg);
  708   const LLT NewTy = LLT::vector(ValTy.getNumElements(), PtrSize);
  708   const LLT NewTy = LLT::vector(ValTy.getNumElements(), PtrSize);
  731   LLT PtrTy = MRI.getType(ListPtr);
  732   LLT IntPtrTy = LLT::scalar(PtrTy.getSizeInBits());
  732   LLT IntPtrTy = LLT::scalar(PtrTy.getSizeInBits());
lib/Target/AArch64/AArch64RegisterBankInfo.cpp
  428   LLT Ty = MRI.getType(MI.getOperand(0).getReg());
  444     LLT OpTy = MRI.getType(MI.getOperand(Idx).getReg());
  547     LLT DstTy = MRI.getType(MI.getOperand(0).getReg());
  548     LLT SrcTy = MRI.getType(MI.getOperand(1).getReg());
  558     LLT ShiftAmtTy = MRI.getType(MI.getOperand(2).getReg());
  559     LLT SrcTy = MRI.getType(MI.getOperand(1).getReg());
  593     LLT DstTy = MRI.getType(MI.getOperand(0).getReg());
  594     LLT SrcTy = MRI.getType(MI.getOperand(1).getReg());
  622     LLT Ty = MRI.getType(MO.getReg());
  639     LLT SrcTy = MRI.getType(MI.getOperand(1).getReg());
  712     LLT SrcTy = MRI.getType(MI.getOperand(2).getReg());
  768     LLT SrcTy = MRI.getType(MI.getOperand(MI.getNumOperands()-1).getReg());
  771     if (SrcTy.isVector() || SrcTy == LLT::scalar(128) ||
  804     LLT SrcTy = MRI.getType(MI.getOperand(1).getReg());
  825     const LLT SrcTy = MRI.getType(VReg);
lib/Target/AMDGPU/AMDGPUCallLowering.cpp
   58       ExtReg = MIRBuilder.buildAnyExt(LLT::scalar(32), ValVReg).getReg(0);
   88       LLT::pointer(AMDGPUAS::PRIVATE_ADDRESS, 32));
  101       auto Copy = MIRBuilder.buildCopy(LLT::scalar(32), PhysReg);
  185     LLT LLTy = getLLTForType(*Ty, DL);
  191     LLT PartLLT = getLLTForType(*PartTy, DL);
  208 static LLT getMultipleType(LLT OrigTy, int Factor) {
  208 static LLT getMultipleType(LLT OrigTy, int Factor) {
  210     return LLT::vector(OrigTy.getNumElements() * Factor,
  214   return LLT::scalar(OrigTy.getSizeInBits() * Factor);
  221                                  LLT SrcTy,
  222                                  LLT PartTy) {
  248   LLT BigTy = getMultipleType(PartTy, NumRoundedParts);
  350   LLT PtrType = getLLTForType(*PtrTy, DL);
  356   Register OffsetReg = MRI.createGenericVirtualRegister(LLT::scalar(64));
  413     const LLT P4 = LLT::pointer(AMDGPUAS::CONSTANT_ADDRESS, 64);
  413     const LLT P4 = LLT::pointer(AMDGPUAS::CONSTANT_ADDRESS, 64);
  493                                     LLT LLTy,
  494                                     LLT PartLLT) {
  512       LLT RoundedDestTy = LLT::vector(RoundedElts, PartLLT.getElementType());
  512       LLT RoundedDestTy = LLT::vector(RoundedElts, PartLLT.getElementType());
  522   LLT DstEltTy = LLTy.getElementType();
  544     LLT BVType = LLT::vector(LLTy.getNumElements(), PartLLT);
  544     LLT BVType = LLT::vector(LLTy.getNumElements(), PartLLT);
lib/Target/AMDGPU/AMDGPUCallLowering.h
   33   using SplitArgTy = std::function<void(ArrayRef<Register>, LLT, LLT, int)>;
   33   using SplitArgTy = std::function<void(ArrayRef<Register>, LLT, LLT, int)>;
lib/Target/AMDGPU/AMDGPUGenRegisterBankInfo.def
  214 getValueMappingLoadSGPROnly(unsigned BankID, LLT SizeTy) {
  228     if (SizeTy == LLT::vector(8, 32))
  230     else if (SizeTy == LLT::vector(16, 32))
  232     else if (SizeTy == LLT::vector(4, 64))
  234     else if (SizeTy == LLT::vector(8, 64))
lib/Target/AMDGPU/AMDGPUInstructionSelector.cpp
   86     const LLT Ty = MRI.getType(Reg);
  103     const LLT Ty = MRI.getType(Reg);
  182   const LLT DefTy = MRI->getType(DefReg);
  463   LLT DstTy = MRI->getType(DstReg);
  464   LLT SrcTy = MRI->getType(MI.getOperand(1).getReg());
  507   LLT DstTy = MRI->getType(DstReg0);
  508   LLT SrcTy = MRI->getType(SrcReg);
  566   LLT Src1Ty = MRI->getType(Src1Reg);
  832 static unsigned getBufferStoreOpcode(LLT Ty,
  852 static unsigned getBufferStoreFormatOpcode(LLT Ty,
  983   LLT Ty = MRI->getType(VData);
 1168   const LLT DstTy = MRI->getType(DstReg);
 1169   const LLT SrcTy = MRI->getType(SrcReg);
 1224   const LLT DstTy = MRI->getType(DstReg);
 1225   const LLT SrcTy = MRI->getType(SrcReg);
 1226   const LLT S1 = LLT::scalar(1);
 1226   const LLT S1 = LLT::scalar(1);
 1378   const LLT DstTy = MRI.getType(DstReg);
 1541   const LLT PtrTy = MRI->getType(I.getOperand(1).getReg());
 1629   LLT Ty = MRI->getType(DstReg);
lib/Target/AMDGPU/AMDGPULegalizerInfo.cpp
   45     const LLT Ty = Query.Types[TypeIdx];
   46     const LLT EltTy = Ty.getScalarType();
   59     const LLT Ty = Query.Types[TypeIdx];
   69     const LLT Ty = Query.Types[TypeIdx];
   70     const LLT EltTy = Ty.getScalarType();
   77     const LLT Ty = Query.Types[TypeIdx];
   78     const LLT EltTy = Ty.getElementType();
   79     return std::make_pair(TypeIdx, LLT::vector(Ty.getNumElements() + 1, EltTy));
   85     const LLT Ty = Query.Types[TypeIdx];
   86     const LLT EltTy = Ty.getElementType();
   90     return std::make_pair(TypeIdx, LLT::scalarOrVector(NewNumElts, EltTy));
   98     const LLT Ty = Query.Types[TypeIdx];
  100     const LLT EltTy = Ty.getElementType();
  108     return std::make_pair(TypeIdx, LLT::vector(NewNumElts, EltTy));
  114     const LLT QueryTy = Query.Types[TypeIdx];
  121     const LLT QueryTy = Query.Types[TypeIdx];
  128     const LLT QueryTy = Query.Types[TypeIdx];
  137     const LLT Ty = Query.Types[TypeIdx];
  149 static LegalityPredicate elementTypeIs(unsigned TypeIdx, LLT Type) {
  157     const LLT Ty = Query.Types[TypeIdx];
  169     return LLT::pointer(AS, TM.getPointerSizeInBits(AS));
  172   const LLT S1 = LLT::scalar(1);
  172   const LLT S1 = LLT::scalar(1);
  173   const LLT S8 = LLT::scalar(8);
  173   const LLT S8 = LLT::scalar(8);
  174   const LLT S16 = LLT::scalar(16);
  174   const LLT S16 = LLT::scalar(16);
  175   const LLT S32 = LLT::scalar(32);
  175   const LLT S32 = LLT::scalar(32);
  176   const LLT S64 = LLT::scalar(64);
  176   const LLT S64 = LLT::scalar(64);
  177   const LLT S96 = LLT::scalar(96);
  177   const LLT S96 = LLT::scalar(96);
  178   const LLT S128 = LLT::scalar(128);
  178   const LLT S128 = LLT::scalar(128);
  179   const LLT S256 = LLT::scalar(256);
  179   const LLT S256 = LLT::scalar(256);
  180   const LLT S1024 = LLT::scalar(1024);
  180   const LLT S1024 = LLT::scalar(1024);
  182   const LLT V2S16 = LLT::vector(2, 16);
  182   const LLT V2S16 = LLT::vector(2, 16);
  183   const LLT V4S16 = LLT::vector(4, 16);
  183   const LLT V4S16 = LLT::vector(4, 16);
  185   const LLT V2S32 = LLT::vector(2, 32);
  185   const LLT V2S32 = LLT::vector(2, 32);
  186   const LLT V3S32 = LLT::vector(3, 32);
  186   const LLT V3S32 = LLT::vector(3, 32);
  187   const LLT V4S32 = LLT::vector(4, 32);
  187   const LLT V4S32 = LLT::vector(4, 32);
  188   const LLT V5S32 = LLT::vector(5, 32);
  188   const LLT V5S32 = LLT::vector(5, 32);
  189   const LLT V6S32 = LLT::vector(6, 32);
  189   const LLT V6S32 = LLT::vector(6, 32);
  190   const LLT V7S32 = LLT::vector(7, 32);
  190   const LLT V7S32 = LLT::vector(7, 32);
  191   const LLT V8S32 = LLT::vector(8, 32);
  191   const LLT V8S32 = LLT::vector(8, 32);
  192   const LLT V9S32 = LLT::vector(9, 32);
  192   const LLT V9S32 = LLT::vector(9, 32);
  193   const LLT V10S32 = LLT::vector(10, 32);
  193   const LLT V10S32 = LLT::vector(10, 32);
  194   const LLT V11S32 = LLT::vector(11, 32);
  194   const LLT V11S32 = LLT::vector(11, 32);
  195   const LLT V12S32 = LLT::vector(12, 32);
  195   const LLT V12S32 = LLT::vector(12, 32);
  196   const LLT V13S32 = LLT::vector(13, 32);
  196   const LLT V13S32 = LLT::vector(13, 32);
  197   const LLT V14S32 = LLT::vector(14, 32);
  197   const LLT V14S32 = LLT::vector(14, 32);
  198   const LLT V15S32 = LLT::vector(15, 32);
  198   const LLT V15S32 = LLT::vector(15, 32);
  199   const LLT V16S32 = LLT::vector(16, 32);
  199   const LLT V16S32 = LLT::vector(16, 32);
  200   const LLT V32S32 = LLT::vector(32, 32);
  200   const LLT V32S32 = LLT::vector(32, 32);
  202   const LLT V2S64 = LLT::vector(2, 64);
  202   const LLT V2S64 = LLT::vector(2, 64);
  203   const LLT V3S64 = LLT::vector(3, 64);
  203   const LLT V3S64 = LLT::vector(3, 64);
  204   const LLT V4S64 = LLT::vector(4, 64);
  204   const LLT V4S64 = LLT::vector(4, 64);
  205   const LLT V5S64 = LLT::vector(5, 64);
  205   const LLT V5S64 = LLT::vector(5, 64);
  206   const LLT V6S64 = LLT::vector(6, 64);
  206   const LLT V6S64 = LLT::vector(6, 64);
  207   const LLT V7S64 = LLT::vector(7, 64);
  207   const LLT V7S64 = LLT::vector(7, 64);
  208   const LLT V8S64 = LLT::vector(8, 64);
  208   const LLT V8S64 = LLT::vector(8, 64);
  209   const LLT V16S64 = LLT::vector(16, 64);
  209   const LLT V16S64 = LLT::vector(16, 64);
  211   std::initializer_list<LLT> AllS32Vectors =
  214   std::initializer_list<LLT> AllS64Vectors =
  217   const LLT GlobalPtr = GetAddrSpacePtr(AMDGPUAS::GLOBAL_ADDRESS);
  218   const LLT ConstantPtr = GetAddrSpacePtr(AMDGPUAS::CONSTANT_ADDRESS);
  219   const LLT Constant32Ptr = GetAddrSpacePtr(AMDGPUAS::CONSTANT_ADDRESS_32BIT);
  220   const LLT LocalPtr = GetAddrSpacePtr(AMDGPUAS::LOCAL_ADDRESS);
  221   const LLT RegionPtr = GetAddrSpacePtr(AMDGPUAS::REGION_ADDRESS);
  222   const LLT FlatPtr = GetAddrSpacePtr(AMDGPUAS::FLAT_ADDRESS);
  223   const LLT PrivatePtr = GetAddrSpacePtr(AMDGPUAS::PRIVATE_ADDRESS);
  225   const LLT CodePtr = FlatPtr;
  227   const std::initializer_list<LLT> AddrSpaces64 = {
  231   const std::initializer_list<LLT> AddrSpaces32 = {
  235   const std::initializer_list<LLT> FPTypesBase = {
  239   const std::initializer_list<LLT> FPTypes16 = {
  243   const std::initializer_list<LLT> FPTypesPK16 = {
  303     .legalForCartesianProduct({S16, LLT::vector(2, 8), });
  440                {S64, LLT::scalar(33)},
  441                {S32, S8}, {S128, S32}, {S128, S64}, {S32, LLT::scalar(24)}})
  583         return std::make_pair(1, LLT::scalar(Query.Types[0].getSizeInBits()));
  587         return std::make_pair(1, LLT::scalar(Query.Types[0].getSizeInBits()));
  599         return std::make_pair(0, LLT::scalar(Query.Types[1].getSizeInBits()));
  604         return std::make_pair(0, LLT::scalar(Query.Types[1].getSizeInBits()));
  638     const LLT DstTy = Query.Types[0];
  645     const LLT PtrTy = Query.Types[1];
  725               const LLT DstTy = Query.Types[0];
  726               const LLT PtrTy = Query.Types[1];
  733                 return std::make_pair(0, LLT::scalar(MemSize));
  738                 return std::make_pair(0, LLT::scalar(32 * (DstSize / 32)));
  743                 return std::make_pair(0, LLT::scalar(MaxSize));
  746               return std::make_pair(0, LLT::scalar(Align));
  753               const LLT DstTy = Query.Types[0];
  754               const LLT PtrTy = Query.Types[1];
  756               LLT EltTy = DstTy.getElementType();
  771                                       LLT::vector(NumElts / NumPieces, EltTy));
  779                 return std::make_pair(0, LLT::vector(EltSize / Align, EltTy));
  793           const LLT Ty0 = Query.Types[0];
  876           LLT::vector(2, LocalPtr), LLT::vector(2, PrivatePtr)}, {S1})
  876           LLT::vector(2, LocalPtr), LLT::vector(2, PrivatePtr)}, {S1})
  919           const LLT EltTy = Query.Types[EltTypeIdx];
  920           const LLT VecTy = Query.Types[VecTypeIdx];
  921           const LLT IdxTy = Query.Types[IdxTypeIdx];
  935         const LLT &EltTy = Query.Types[1].getElementType();
  948           const LLT BigTy = Query.Types[BigTyIdx];
  949           const LLT LitTy = Query.Types[LitTyIdx];
  955           const LLT BigTy = Query.Types[BigTyIdx];
  961           const LLT LitTy = Query.Types[LitTyIdx];
 1006       const LLT &Ty = Query.Types[TypeIdx];
 1008         const LLT &EltTy = Ty.getElementType();
 1042           const LLT Ty = Query.Types[LitTyIdx];
 1050         const LLT Ty = Query.Types[BigTyIdx];
 1057         const LLT &Ty = Query.Types[BigTyIdx];
 1064         return std::make_pair(BigTyIdx, LLT::scalar(NewSizeInBits));
 1067           const LLT &BigTy = Query.Types[BigTyIdx];
 1068           const LLT &LitTy = Query.Types[LitTyIdx];
 1142   const LLT S32 = LLT::scalar(32);
 1142   const LLT S32 = LLT::scalar(32);
 1178     LLT::pointer(AMDGPUAS::CONSTANT_ADDRESS, 64));
 1205   B.materializeGEP(LoadAddr, QueuePtr, LLT::scalar(64), StructOffset);
 1217   const LLT S32 = LLT::scalar(32);
 1217   const LLT S32 = LLT::scalar(32);
 1221   LLT DstTy = MRI.getType(Dst);
 1222   LLT SrcTy = MRI.getType(Src);
 1254       LLT::pointer(AMDGPUAS::CONSTANT_ADDRESS_32BIT, 32), AddrHiVal);
 1273     Register CmpRes = MRI.createGenericVirtualRegister(LLT::scalar(1));
 1296   Register CmpRes = MRI.createGenericVirtualRegister(LLT::scalar(1));
 1322   LLT Ty = MRI.getType(Src);
 1338   auto Cond = B.buildFCmp(CmpInst::FCMP_OGT, LLT::scalar(1), Fabs, C2);
 1348   const LLT S1 = LLT::scalar(1);
 1348   const LLT S1 = LLT::scalar(1);
 1349   const LLT S64 = LLT::scalar(64);
 1349   const LLT S64 = LLT::scalar(64);
 1376   LLT S32 = LLT::scalar(32);
 1376   LLT S32 = LLT::scalar(32);
 1393   const LLT S1 = LLT::scalar(1);
 1393   const LLT S1 = LLT::scalar(1);
 1394   const LLT S32 = LLT::scalar(32);
 1394   const LLT S32 = LLT::scalar(32);
 1395   const LLT S64 = LLT::scalar(64);
 1395   const LLT S64 = LLT::scalar(64);
 1442   const LLT S64 = LLT::scalar(64);
 1442   const LLT S64 = LLT::scalar(64);
 1443   const LLT S32 = LLT::scalar(32);
 1443   const LLT S32 = LLT::scalar(32);
 1504   LLT VecTy = MRI.getType(Vec);
 1505   LLT EltTy = VecTy.getElementType();
 1534   LLT VecTy = MRI.getType(Vec);
 1535   LLT EltTy = VecTy.getElementType();
 1556   LLT Ty = MRI.getType(DstReg);
 1579   Register DstReg, LLT PtrTy,
 1613   LLT ConstPtrTy = LLT::pointer(AMDGPUAS::CONSTANT_ADDRESS, 64);
 1613   LLT ConstPtrTy = LLT::pointer(AMDGPUAS::CONSTANT_ADDRESS, 64);
 1638   LLT Ty = MRI.getType(DstReg);
 1682   LLT PtrTy = LLT::pointer(AMDGPUAS::CONSTANT_ADDRESS, 64);
 1682   LLT PtrTy = LLT::pointer(AMDGPUAS::CONSTANT_ADDRESS, 64);
 1708   LLT ConstPtr = LLT::pointer(AMDGPUAS::CONSTANT_ADDRESS, 64);
 1708   LLT ConstPtr = LLT::pointer(AMDGPUAS::CONSTANT_ADDRESS, 64);
 1719   LLT Ty = MRI.getType(MI.getOperand(0).getReg());
 1723   if (Ty == LLT::scalar(32) && !ST.hasFP32Denormals())
 1725   if (Ty == LLT::scalar(16) && !ST.hasFP16Denormals())
 1748   LLT ValTy = MRI.getType(CmpVal);
 1749   LLT VecTy = LLT::vector(2, ValTy);
 1749   LLT VecTy = LLT::vector(2, ValTy);
 1777                                                 Register Reg, LLT Ty) const {
 1796   LLT Ty = MRI.getType(DstReg);
 1801     const LLT S32 = LLT::scalar(32);
 1801     const LLT S32 = LLT::scalar(32);
 1864   LLT DstTy = MRI.getType(Dst);
 1865   LLT S16 = LLT::scalar(16);
 1865   LLT S16 = LLT::scalar(16);
 1885   LLT ResTy = MRI.getType(Res);
 1886   LLT S32 = LLT::scalar(32);
 1886   LLT S32 = LLT::scalar(32);
 1887   LLT S64 = LLT::scalar(64);
 1887   LLT S64 = LLT::scalar(64);
 1946   LLT S16 = LLT::scalar(16);
 1946   LLT S16 = LLT::scalar(16);
 1947   LLT S32 = LLT::scalar(32);
 1947   LLT S32 = LLT::scalar(32);
 1978   LLT S32 = LLT::scalar(32);
 1978   LLT S32 = LLT::scalar(32);
 1979   LLT S1 = LLT::scalar(1);
 1979   LLT S1 = LLT::scalar(1);
 2020   LLT DstTy = MRI.getType(DstReg);
 2021   LLT IdxTy = LLT::scalar(DstTy.getSizeInBits());
 2021   LLT IdxTy = LLT::scalar(DstTy.getSizeInBits());
 2045   auto Hi32 = B.buildExtract(LLT::scalar(32), MI.getOperand(2).getReg(), 32);
 2058   const LLT S16 = LLT::scalar(16);
 2058   const LLT S16 = LLT::scalar(16);
 2059   const LLT S32 = LLT::scalar(32);
 2059   const LLT S32 = LLT::scalar(32);
 2060   LLT StoreVT = MRI.getType(Reg);
 2071   return B.buildBuildVector(LLT::vector(NumElts, S32), WideRegs).getReg(0);
 2080   LLT Ty = MRI.getType(VData);
 2084   const LLT S32 = LLT::scalar(32);
 2084   const LLT S32 = LLT::scalar(32);
 2085   const LLT S16 = LLT::scalar(16);
 2085   const LLT S16 = LLT::scalar(16);
 2088   if (Ty == LLT::scalar(8) || Ty == S16) {
 2089     Register AnyExt = B.buildAnyExt(LLT::scalar(32), VData).getReg(0);
lib/Target/AMDGPU/AMDGPULegalizerInfo.h
   63     Register DstReg, LLT PtrTy, MachineIRBuilder &B, const GlobalValue *GV,
   79                              Register Reg, LLT Ty) const;
lib/Target/AMDGPU/AMDGPURegisterBankInfo.cpp
   68       if (MRI.getType(Reg) == LLT::scalar(1))
  447     LLT PtrTy = MRI.getType(MI.getOperand(1).getReg());
  450     LLT LoadTy = MRI.getType(MI.getOperand(0).getReg());
  605   LLT HalfTy,
  626                           LLT NewTy) {
  633 static LLT getHalfSizedType(LLT Ty) {
  633 static LLT getHalfSizedType(LLT Ty) {
  636     return LLT::scalarOrVector(Ty.getNumElements() / 2, Ty.getElementType());
  640   return LLT::scalar(Ty.getSizeInBits() / 2);
  687       LLT ResTy = MRI.getType(Def.getReg());
  770         LLT OpTy = MRI.getType(Op.getReg());
  809           LLT S32 = LLT::scalar(32);
  809           LLT S32 = LLT::scalar(32);
  817           LLT UnmergeTy = OpSize % 64 == 0 ? LLT::scalar(64) : LLT::scalar(32);
  817           LLT UnmergeTy = OpSize % 64 == 0 ? LLT::scalar(64) : LLT::scalar(32);
  817           LLT UnmergeTy = OpSize % 64 == 0 ? LLT::scalar(64) : LLT::scalar(32);
  854                 B.buildMerge(LLT::scalar(64),
 1041   const LLT LoadTy =  MRI.getType(DstReg);
 1070   LLT PtrTy = MRI.getType(MI.getOperand(1).getReg());
 1077   const LLT LoadSplitTy =  LLT::vector(SplitElts, LoadTy.getScalarType());
 1077   const LLT LoadSplitTy =  LLT::vector(SplitElts, LoadTy.getScalarType());
 1100     Register IdxReg = MRI.createGenericVirtualRegister(LLT::scalar(32));
 1155   const LLT S16 = LLT::scalar(16);
 1155   const LLT S16 = LLT::scalar(16);
 1156   LLT StoreVT = MRI.getType(Reg);
 1167   const LLT S32 = LLT::scalar(32);
 1167   const LLT S32 = LLT::scalar(32);
 1170   return B.buildMerge(LLT::vector(NumElts, S32), WideRegs).getReg(0);
 1193   const LLT S32 = LLT::scalar(32);
 1193   const LLT S32 = LLT::scalar(32);
 1257   LLT Ty = MRI.getType(VData);
 1334     LLT DstTy = MRI.getType(DstReg);
 1338     LLT HalfTy = getHalfSizedType(DstTy);
 1384     LLT DstTy = MRI.getType(DstReg);
 1388     LLT HalfTy = getHalfSizedType(DstTy);
 1438     LLT DstTy = MRI.getType(DstReg);
 1439     if (DstTy != LLT::scalar(16))
 1453     if (Helper.widenScalar(MI, 0, LLT::scalar(32)) !=
 1474     LLT Ty = MRI.getType(DstReg);
 1475     LLT S32 = LLT::scalar(32);
 1475     LLT S32 = LLT::scalar(32);
 1476     LLT S16 = LLT::scalar(16);
 1476     LLT S16 = LLT::scalar(16);
 1496     LLT SrcTy = MRI.getType(SrcReg);
 1503     LLT DstTy = MRI.getType(DstReg);
 1512       const LLT S32 = LLT::scalar(32);
 1512       const LLT S32 = LLT::scalar(32);
 1534     if (SrcTy != LLT::scalar(1))
 1549       LLT SelType = UseSel64 ? LLT::scalar(64) : LLT::scalar(32);
 1549       LLT SelType = UseSel64 ? LLT::scalar(64) : LLT::scalar(32);
 1549       LLT SelType = UseSel64 ? LLT::scalar(64) : LLT::scalar(32);
 1576     auto ShiftAmt = B.buildConstant(LLT::scalar(32), DstTy.getSizeInBits() - 1);
 1594     LLT DstTy = MRI.getType(DstReg);
 1595     if (DstTy != LLT::vector(2, 16))
 1610     const LLT S32 = LLT::scalar(32);
 1610     const LLT S32 = LLT::scalar(32);
 1665     LLT DstTy = MRI.getType(DstReg);
 1670     LLT SrcTy = MRI.getType(SrcReg);
 1671     const LLT S32 = LLT::scalar(32);
 1671     const LLT S32 = LLT::scalar(32);
 1672     LLT Vec32 = LLT::vector(2 * SrcTy.getNumElements(), 32);
 1672     LLT Vec32 = LLT::vector(2 * SrcTy.getNumElements(), 32);
 1732     LLT SrcTy = MRI.getType(SrcReg);
 1733     LLT InsTy = MRI.getType(InsReg);
 1738     const LLT S32 = LLT::scalar(32);
 1738     const LLT S32 = LLT::scalar(32);
 1739     LLT Vec32 = LLT::vector(2 * SrcTy.getNumElements(), 32);
 1739     LLT Vec32 = LLT::vector(2 * SrcTy.getNumElements(), 32);
 2037   LLT LoadTy = MRI.getType(MI.getOperand(0).getReg());
 2039   LLT PtrTy = MRI.getType(PtrReg);
 2367     LLT DstTy = MRI.getType(MI.getOperand(0).getReg());
 2368     if (DstTy == LLT::vector(2, 16)) {
lib/Target/AMDGPU/AMDGPURegisterBankInfo.h
  110                                  LLT HalfTy,
lib/Target/AMDGPU/SIISelLowering.cpp
 1617   const LLT S32 = LLT::scalar(32);
 1617   const LLT S32 = LLT::scalar(32);
 1670   MF.getRegInfo().setType(LiveInVReg, LLT::scalar(32));
 1792     MRI.setType(VReg, LLT::pointer(AMDGPUAS::CONSTANT_ADDRESS, 64));
lib/Target/AMDGPU/SIRegisterInfo.h
  255   getRegClassForTypeOnBank(LLT Ty,
lib/Target/ARM/ARMCallLowering.cpp
  100     LLT p0 = LLT::pointer(0, 32);
  100     LLT p0 = LLT::pointer(0, 32);
  101     LLT s32 = LLT::scalar(32);
  101     LLT s32 = LLT::scalar(32);
  158     Register NewRegs[] = {MRI.createGenericVirtualRegister(LLT::scalar(32)),
  159                           MRI.createGenericVirtualRegister(LLT::scalar(32))};
  303         MRI.createGenericVirtualRegister(LLT::pointer(MPO.getAddrSpace(), 32));
  321       auto LoadVReg = MRI.createGenericVirtualRegister(LLT::scalar(32));
  358           MRI.createGenericVirtualRegister(LLT::scalar(LocSize));
  382     Register NewRegs[] = {MRI.createGenericVirtualRegister(LLT::scalar(32)),
  383                           MRI.createGenericVirtualRegister(LLT::scalar(32))};
lib/Target/ARM/ARMInstructionSelector.cpp
  867     LLT SrcTy = MRI.getType(I.getOperand(1).getReg());
 1087     LLT ValTy = MRI.getType(Reg);
lib/Target/ARM/ARMLegalizerInfo.cpp
   69   const LLT p0 = LLT::pointer(0, 32);
   69   const LLT p0 = LLT::pointer(0, 32);
   71   const LLT s1 = LLT::scalar(1);
   71   const LLT s1 = LLT::scalar(1);
   72   const LLT s8 = LLT::scalar(8);
   72   const LLT s8 = LLT::scalar(8);
   73   const LLT s16 = LLT::scalar(16);
   73   const LLT s16 = LLT::scalar(16);
   74   const LLT s32 = LLT::scalar(32);
   74   const LLT s32 = LLT::scalar(32);
   75   const LLT s64 = LLT::scalar(64);
   75   const LLT s64 = LLT::scalar(64);
  200     for (auto Ty : {s32, s64})
  387     Register RetRegs[] = {MRI.createGenericVirtualRegister(LLT::scalar(32)),
  423       auto LibcallResult = MRI.createGenericVirtualRegister(LLT::scalar(32));
  448         auto Zero = MRI.createGenericVirtualRegister(LLT::scalar(32));
lib/Target/ARM/ARMRegisterBankInfo.cpp
  234     LLT Ty = MRI.getType(MI.getOperand(0).getReg());
  269     LLT LargeTy = MRI.getType(MI.getOperand(1).getReg());
  279     LLT Ty = MRI.getType(MI.getOperand(0).getReg());
  292     LLT Ty = MRI.getType(MI.getOperand(0).getReg());
  299     LLT Ty = MRI.getType(MI.getOperand(0).getReg());
  313     LLT ToTy = MRI.getType(MI.getOperand(0).getReg());
  314     LLT FromTy = MRI.getType(MI.getOperand(1).getReg());
  322     LLT ToTy = MRI.getType(MI.getOperand(0).getReg());
  323     LLT FromTy = MRI.getType(MI.getOperand(1).getReg());
  332     LLT ToTy = MRI.getType(MI.getOperand(0).getReg());
  333     LLT FromTy = MRI.getType(MI.getOperand(1).getReg());
  346     LLT ToTy = MRI.getType(MI.getOperand(0).getReg());
  347     LLT FromTy = MRI.getType(MI.getOperand(1).getReg());
  359     LLT Ty = MRI.getType(MI.getOperand(0).getReg());
  373     LLT Ty = MRI.getType(MI.getOperand(0).getReg());
  375     LLT Ty2 = MRI.getType(MI.getOperand(1).getReg());
  387     LLT Ty2 = MRI.getType(MI.getOperand(2).getReg());
  397     LLT Ty = MRI.getType(MI.getOperand(0).getReg());
  399     LLT Ty1 = MRI.getType(MI.getOperand(2).getReg());
  400     LLT Ty2 = MRI.getType(MI.getOperand(3).getReg());
  419     LLT Ty = MRI.getType(MI.getOperand(0).getReg());
  420     LLT Ty1 = MRI.getType(MI.getOperand(1).getReg());
  421     LLT Ty2 = MRI.getType(MI.getOperand(2).getReg());
  434     LLT Ty = MRI.getType(MI.getOperand(0).getReg());
  435     LLT Ty1 = MRI.getType(MI.getOperand(1).getReg());
  436     LLT Ty2 = MRI.getType(MI.getOperand(2).getReg());
lib/Target/Mips/MipsCallLowering.cpp
  195   Register AddrReg = MRI.createGenericVirtualRegister(LLT::pointer(0, 32));
  206     Register LoadReg = MRI.createGenericVirtualRegister(LLT::scalar(32));
  292   LLT p0 = LLT::pointer(0, 32);
  292   LLT p0 = LLT::pointer(0, 32);
  293   LLT s32 = LLT::scalar(32);
  293   LLT s32 = LLT::scalar(32);
  323   LLT LocTy{VA.getLocVT()};
  522           MIRBuilder.buildCopy(LLT::scalar(RegSize * 8), Register(ArgRegs[I]));
  526           MIRBuilder.buildFrameIndex(LLT::pointer(MPO.getAddrSpace(), 32), FI);
  574         MF.getRegInfo().createGenericVirtualRegister(LLT::pointer(0, 32));
lib/Target/Mips/MipsLegalizerInfo.cpp
   20   LLT ValTy;
   21   LLT PtrTy;
   45                      std::initializer_list<LLT> SupportedValues) {
   55   const LLT s1 = LLT::scalar(1);
   55   const LLT s1 = LLT::scalar(1);
   56   const LLT s32 = LLT::scalar(32);
   56   const LLT s32 = LLT::scalar(32);
   57   const LLT s64 = LLT::scalar(64);
   57   const LLT s64 = LLT::scalar(64);
   58   const LLT v16s8 = LLT::vector(16, 8);
   58   const LLT v16s8 = LLT::vector(16, 8);
   59   const LLT v8s16 = LLT::vector(8, 16);
   59   const LLT v8s16 = LLT::vector(8, 16);
   60   const LLT v4s32 = LLT::vector(4, 32);
   60   const LLT v4s32 = LLT::vector(4, 32);
   61   const LLT v2s64 = LLT::vector(2, 64);
   61   const LLT v2s64 = LLT::vector(2, 64);
   62   const LLT p0 = LLT::pointer(0, 32);
   62   const LLT p0 = LLT::pointer(0, 32);
  251   const LLT s32 = LLT::scalar(32);
  251   const LLT s32 = LLT::scalar(32);
  252   const LLT s64 = LLT::scalar(64);
  252   const LLT s64 = LLT::scalar(64);
  258     LLT DstTy = MRI.getType(Dst);
  259     LLT SrcTy = MRI.getType(Src);
  362     Register Tmp = MRI.createGenericVirtualRegister(LLT::pointer(0, 32));
lib/Target/Mips/MipsRegisterBankInfo.cpp
  423       LLT RegTy = MRI.getType(Op.getReg());
  434   const LLT Op0Ty = MRI.getType(MI.getOperand(0).getReg());
  680     Helper.narrowScalar(MI, 0, LLT::scalar(32));
lib/Target/X86/X86CallLowering.cpp
  109     LLT p0 = LLT::pointer(0, DL.getPointerSizeInBits(0));
  109     LLT p0 = LLT::pointer(0, DL.getPointerSizeInBits(0));
  110     LLT SType = LLT::scalar(DL.getPointerSizeInBits(0));
  110     LLT SType = LLT::scalar(DL.getPointerSizeInBits(0));
  141       auto MIB = MIRBuilder.buildAnyExt(LLT::scalar(PhysRegSize), ValVReg);
  244         LLT::pointer(0, DL.getPointerSizeInBits(0)));
  274         auto Copy = MIRBuilder.buildCopy(LLT::scalar(PhysRegSize), PhysReg);
lib/Target/X86/X86InstructionSelector.cpp
   72   unsigned getLoadStoreOp(const LLT &Ty, const RegisterBank &RB, unsigned Opc,
  126   const TargetRegisterClass *getRegClass(LLT Ty, const RegisterBank &RB) const;
  127   const TargetRegisterClass *getRegClass(LLT Ty, unsigned Reg,
  168 X86InstructionSelector::getRegClass(LLT Ty, const RegisterBank &RB) const {
  196 X86InstructionSelector::getRegClass(LLT Ty, unsigned Reg,
  393 unsigned X86InstructionSelector::getLoadStoreOp(const LLT &Ty,
  402   if (Ty == LLT::scalar(8)) {
  405   } else if (Ty == LLT::scalar(16)) {
  408   } else if (Ty == LLT::scalar(32) || Ty == LLT::pointer(0, 32)) {
  408   } else if (Ty == LLT::scalar(32) || Ty == LLT::pointer(0, 32)) {
  418   } else if (Ty == LLT::scalar(64) || Ty == LLT::pointer(0, 64)) {
  418   } else if (Ty == LLT::scalar(64) || Ty == LLT::pointer(0, 64)) {
  507   LLT Ty = MRI.getType(DefReg);
  549 static unsigned getLeaOP(LLT Ty, const X86Subtarget &STI) {
  550   if (Ty == LLT::pointer(0, 64))
  552   else if (Ty == LLT::pointer(0, 32))
  567   LLT Ty = MRI.getType(DefReg);
  620   LLT Ty = MRI.getType(DefReg);
  639   LLT Ty = MRI.getType(DefReg);
  714   const LLT DstTy = MRI.getType(DstReg);
  715   const LLT SrcTy = MRI.getType(SrcReg);
  778   const LLT DstTy = MRI.getType(DstReg);
  779   const LLT SrcTy = MRI.getType(SrcReg);
  787     LLT SrcTy;
  788     LLT DstTy;
  792       {LLT::scalar(8), LLT::scalar(16), X86::MOVZX16rr8, false},  // i8  => i16
  792       {LLT::scalar(8), LLT::scalar(16), X86::MOVZX16rr8, false},  // i8  => i16
  793       {LLT::scalar(8), LLT::scalar(64), X86::MOVZX32rr8, true},   // i8  => i64
  793       {LLT::scalar(8), LLT::scalar(64), X86::MOVZX32rr8, true},   // i8  => i64
  794       {LLT::scalar(16), LLT::scalar(64), X86::MOVZX32rr16, true}, // i16 => i64
  794       {LLT::scalar(16), LLT::scalar(64), X86::MOVZX32rr16, true}, // i16 => i64
  795       {LLT::scalar(32), LLT::scalar(64), 0, true}                 // i32 => i64
  795       {LLT::scalar(32), LLT::scalar(64), 0, true}                 // i32 => i64
  825             getRegClass(LLT::scalar(32), DstReg, MRI));
  845   if (SrcTy != LLT::scalar(1))
  849   if (DstTy == LLT::scalar(8))
  851   else if (DstTy == LLT::scalar(16))
  853   else if (DstTy == LLT::scalar(32))
  855   else if (DstTy == LLT::scalar(64))
  861   if (DstTy != LLT::scalar(8)) {
  889   const LLT DstTy = MRI.getType(DstReg);
  890   const LLT SrcTy = MRI.getType(SrcReg);
  953   LLT Ty = MRI.getType(LHS);
 1015   LLT Ty = MRI.getType(LhsReg);
 1030       *getRegClass(LLT::scalar(8), *RBI.getRegBank(ResultReg, MRI, TRI)), MRI);
 1089   const LLT DstTy = MRI.getType(DstReg);
 1091   if (DstTy != LLT::scalar(32))
 1147   const LLT DstTy = MRI.getType(DstReg);
 1148   const LLT SrcTy = MRI.getType(SrcReg);
 1198   const LLT DstTy = MRI.getType(DstReg);
 1199   const LLT SrcTy = MRI.getType(SrcReg);
 1236   const LLT DstTy = MRI.getType(DstReg);
 1237   const LLT SrcTy = MRI.getType(SrcReg);
 1280   const LLT DstTy = MRI.getType(DstReg);
 1281   const LLT InsertRegTy = MRI.getType(InsertReg);
 1363   const LLT DstTy = MRI.getType(DstReg);
 1364   const LLT SrcTy = MRI.getType(SrcReg0);
 1435   const LLT DstTy = MRI.getType(DstReg);
 1498     const LLT DstTy = MRI.getType(DstReg);
 1530   const LLT RegTy = MRI.getType(DstReg);
lib/Target/X86/X86LegalizerInfo.cpp
  108   const LLT p0 = LLT::pointer(0, TM.getPointerSizeInBits(0));
  108   const LLT p0 = LLT::pointer(0, TM.getPointerSizeInBits(0));
  109   const LLT s1 = LLT::scalar(1);
  109   const LLT s1 = LLT::scalar(1);
  110   const LLT s8 = LLT::scalar(8);
  110   const LLT s8 = LLT::scalar(8);
  111   const LLT s16 = LLT::scalar(16);
  111   const LLT s16 = LLT::scalar(16);
  112   const LLT s32 = LLT::scalar(32);
  112   const LLT s32 = LLT::scalar(32);
  113   const LLT s64 = LLT::scalar(64);
  113   const LLT s64 = LLT::scalar(64);
  114   const LLT s128 = LLT::scalar(128);
  114   const LLT s128 = LLT::scalar(128);
  116   for (auto Ty : {p0, s1, s8, s16, s32})
  119   for (auto Ty : {s8, s16, s32, p0})
  123     for (auto Ty : {s8, s16, s32})
  132     for (auto Ty : {s8, s16, s32, p0})
  170   for (auto Ty : {s8, s16, s32, p0})
  174   for (auto Ty : {s8, s16, s32}) {
  185   for (auto Ty : {s8, s16, s32, p0})
  189   for (const auto &Ty : {s16, s32, s64}) {
  193   for (const auto &Ty : {s8, s16, s32}) {
  204   const LLT p0 = LLT::pointer(0, TM.getPointerSizeInBits(0));
  204   const LLT p0 = LLT::pointer(0, TM.getPointerSizeInBits(0));
  205   const LLT s1 = LLT::scalar(1);
  205   const LLT s1 = LLT::scalar(1);
  206   const LLT s8 = LLT::scalar(8);
  206   const LLT s8 = LLT::scalar(8);
  207   const LLT s16 = LLT::scalar(16);
  207   const LLT s16 = LLT::scalar(16);
  208   const LLT s32 = LLT::scalar(32);
  208   const LLT s32 = LLT::scalar(32);
  209   const LLT s64 = LLT::scalar(64);
  209   const LLT s64 = LLT::scalar(64);
  210   const LLT s128 = LLT::scalar(128);
  210   const LLT s128 = LLT::scalar(128);
  288   const LLT s32 = LLT::scalar(32);
  288   const LLT s32 = LLT::scalar(32);
  289   const LLT s64 = LLT::scalar(64);
  289   const LLT s64 = LLT::scalar(64);
  290   const LLT v4s32 = LLT::vector(4, 32);
  290   const LLT v4s32 = LLT::vector(4, 32);
  291   const LLT v2s64 = LLT::vector(2, 64);
  291   const LLT v2s64 = LLT::vector(2, 64);
  294     for (auto Ty : {s32, v4s32})
  298     for (auto Ty : {v4s32, v2s64})
  305   for (const auto &Ty : {v4s32, v2s64}) {
  317   const LLT s32 = LLT::scalar(32);
  317   const LLT s32 = LLT::scalar(32);
  318   const LLT s64 = LLT::scalar(64);
  318   const LLT s64 = LLT::scalar(64);
  319   const LLT v16s8 = LLT::vector(16, 8);
  319   const LLT v16s8 = LLT::vector(16, 8);
  320   const LLT v8s16 = LLT::vector(8, 16);
  320   const LLT v8s16 = LLT::vector(8, 16);
  321   const LLT v4s32 = LLT::vector(4, 32);
  321   const LLT v4s32 = LLT::vector(4, 32);
  322   const LLT v2s64 = LLT::vector(2, 64);
  322   const LLT v2s64 = LLT::vector(2, 64);
  324   const LLT v32s8 = LLT::vector(32, 8);
  324   const LLT v32s8 = LLT::vector(32, 8);
  325   const LLT v16s16 = LLT::vector(16, 16);
  325   const LLT v16s16 = LLT::vector(16, 16);
  326   const LLT v8s32 = LLT::vector(8, 32);
  326   const LLT v8s32 = LLT::vector(8, 32);
  327   const LLT v4s64 = LLT::vector(4, 64);
  327   const LLT v4s64 = LLT::vector(4, 64);
  330     for (auto Ty : {s64, v2s64})
  334     for (auto Ty : {v16s8, v8s16, v4s32, v2s64})
  349   for (const auto &Ty :
  354   for (const auto &Ty : {v16s8, v8s16, v4s32, v2s64}) {
  364   const LLT v4s32 = LLT::vector(4, 32);
  364   const LLT v4s32 = LLT::vector(4, 32);
  373   const LLT v16s8 = LLT::vector(16, 8);
  373   const LLT v16s8 = LLT::vector(16, 8);
  374   const LLT v8s16 = LLT::vector(8, 16);
  374   const LLT v8s16 = LLT::vector(8, 16);
  375   const LLT v4s32 = LLT::vector(4, 32);
  375   const LLT v4s32 = LLT::vector(4, 32);
  376   const LLT v2s64 = LLT::vector(2, 64);
  376   const LLT v2s64 = LLT::vector(2, 64);
  378   const LLT v32s8 = LLT::vector(32, 8);
  378   const LLT v32s8 = LLT::vector(32, 8);
  379   const LLT v64s8 = LLT::vector(64, 8);
  379   const LLT v64s8 = LLT::vector(64, 8);
  380   const LLT v16s16 = LLT::vector(16, 16);
  380   const LLT v16s16 = LLT::vector(16, 16);
  381   const LLT v32s16 = LLT::vector(32, 16);
  381   const LLT v32s16 = LLT::vector(32, 16);
  382   const LLT v8s32 = LLT::vector(8, 32);
  382   const LLT v8s32 = LLT::vector(8, 32);
  383   const LLT v16s32 = LLT::vector(16, 32);
  383   const LLT v16s32 = LLT::vector(16, 32);
  384   const LLT v4s64 = LLT::vector(4, 64);
  384   const LLT v4s64 = LLT::vector(4, 64);
  385   const LLT v8s64 = LLT::vector(8, 64);
  385   const LLT v8s64 = LLT::vector(8, 64);
  388     for (auto Ty : {v8s32, v4s64})
  391   for (auto Ty : {v32s8, v16s16, v8s32, v4s64}) {
  395   for (auto Ty : {v16s8, v8s16, v4s32, v2s64}) {
  400   for (const auto &Ty :
  405   for (const auto &Ty :
  416   const LLT v32s8 = LLT::vector(32, 8);
  416   const LLT v32s8 = LLT::vector(32, 8);
  417   const LLT v16s16 = LLT::vector(16, 16);
  417   const LLT v16s16 = LLT::vector(16, 16);
  418   const LLT v8s32 = LLT::vector(8, 32);
  418   const LLT v8s32 = LLT::vector(8, 32);
  419   const LLT v4s64 = LLT::vector(4, 64);
  419   const LLT v4s64 = LLT::vector(4, 64);
  421   const LLT v64s8 = LLT::vector(64, 8);
  421   const LLT v64s8 = LLT::vector(64, 8);
  422   const LLT v32s16 = LLT::vector(32, 16);
  422   const LLT v32s16 = LLT::vector(32, 16);
  423   const LLT v16s32 = LLT::vector(16, 32);
  423   const LLT v16s32 = LLT::vector(16, 32);
  424   const LLT v8s64 = LLT::vector(8, 64);
  424   const LLT v8s64 = LLT::vector(8, 64);
  427     for (auto Ty : {v32s8, v16s16, v8s32, v4s64})
  430   for (auto Ty : {v16s16, v8s32})
  434   for (const auto &Ty : {v64s8, v32s16, v16s32, v8s64}) {
  438   for (const auto &Ty : {v32s8, v16s16, v8s32, v4s64}) {
  448   const LLT v16s8 = LLT::vector(16, 8);
  448   const LLT v16s8 = LLT::vector(16, 8);
  449   const LLT v8s16 = LLT::vector(8, 16);
  449   const LLT v8s16 = LLT::vector(8, 16);
  450   const LLT v4s32 = LLT::vector(4, 32);
  450   const LLT v4s32 = LLT::vector(4, 32);
  451   const LLT v2s64 = LLT::vector(2, 64);
  451   const LLT v2s64 = LLT::vector(2, 64);
  453   const LLT v32s8 = LLT::vector(32, 8);
  453   const LLT v32s8 = LLT::vector(32, 8);
  454   const LLT v16s16 = LLT::vector(16, 16);
  454   const LLT v16s16 = LLT::vector(16, 16);
  455   const LLT v8s32 = LLT::vector(8, 32);
  455   const LLT v8s32 = LLT::vector(8, 32);
  456   const LLT v4s64 = LLT::vector(4, 64);
  456   const LLT v4s64 = LLT::vector(4, 64);
  458   const LLT v64s8 = LLT::vector(64, 8);
  458   const LLT v64s8 = LLT::vector(64, 8);
  459   const LLT v32s16 = LLT::vector(32, 16);
  459   const LLT v32s16 = LLT::vector(32, 16);
  460   const LLT v16s32 = LLT::vector(16, 32);
  460   const LLT v16s32 = LLT::vector(16, 32);
  461   const LLT v8s64 = LLT::vector(8, 64);
  461   const LLT v8s64 = LLT::vector(8, 64);
  464     for (auto Ty : {v16s32, v8s64})
  470     for (auto Ty : {v16s32, v8s64})
  473   for (auto Ty : {v64s8, v32s16, v16s32, v8s64}) {
  477   for (auto Ty : {v32s8, v16s16, v8s32, v4s64, v16s8, v8s16, v4s32, v2s64}) {
  486   for (auto Ty : {v4s32, v8s32})
  494   const LLT v8s64 = LLT::vector(8, 64);
  494   const LLT v8s64 = LLT::vector(8, 64);
  502   const LLT v2s64 = LLT::vector(2, 64);
  502   const LLT v2s64 = LLT::vector(2, 64);
  503   const LLT v4s64 = LLT::vector(4, 64);
  503   const LLT v4s64 = LLT::vector(4, 64);
  505   for (auto Ty : {v2s64, v4s64})
  513   const LLT v64s8 = LLT::vector(64, 8);
  513   const LLT v64s8 = LLT::vector(64, 8);
  514   const LLT v32s16 = LLT::vector(32, 16);
  514   const LLT v32s16 = LLT::vector(32, 16);
  517     for (auto Ty : {v64s8, v32s16})
  526   const LLT v8s16 = LLT::vector(8, 16);
  526   const LLT v8s16 = LLT::vector(8, 16);
  527   const LLT v16s16 = LLT::vector(16, 16);
  527   const LLT v16s16 = LLT::vector(16, 16);
  529   for (auto Ty : {v8s16, v16s16})
lib/Target/X86/X86RegisterBankInfo.cpp
   65 X86GenRegisterBankInfo::getPartialMappingIdx(const LLT &Ty, bool isFP) {
  150   LLT Ty = MRI.getType(MI.getOperand(0).getReg());
  188     LLT Ty = MRI.getType(MI.getOperand(0).getReg());
  214     const LLT Ty0 = MRI.getType(Op0.getReg());
  215     const LLT Ty1 = MRI.getType(Op1.getReg());
  224     LLT Ty1 = MRI.getType(MI.getOperand(2).getReg());
  225     LLT Ty2 = MRI.getType(MI.getOperand(3).getReg());
  243     const LLT Ty0 = MRI.getType(Op0.getReg());
  244     const LLT Ty1 = MRI.getType(Op1.getReg());
lib/Target/X86/X86RegisterBankInfo.h
   35   static PartialMappingIdx getPartialMappingIdx(const LLT &Ty, bool isFP);
unittests/CodeGen/GlobalISel/CSETest.cpp
   19   LLT s16{LLT::scalar(16)};
   19   LLT s16{LLT::scalar(16)};
   20   LLT s32{LLT::scalar(32)};
   20   LLT s32{LLT::scalar(32)};
   61   auto Splat0 = CSEB.buildConstant(LLT::vector(2, s32), 0);
   66   auto FSplat = CSEB.buildFConstant(LLT::vector(2, s32), 1.0);
   82   LLT s16{LLT::scalar(16)};
   82   LLT s16{LLT::scalar(16)};
unittests/CodeGen/GlobalISel/ConstantFoldingTest.cpp
   26   LLT s32 = LLT::scalar(32);
   26   LLT s32 = LLT::scalar(32);
   76   LLT s32{LLT::scalar(32)};
   76   LLT s32{LLT::scalar(32)};
unittests/CodeGen/GlobalISel/GISelMITest.cpp
   13 operator<<(std::ostream &OS, const LLT Ty) {
unittests/CodeGen/GlobalISel/GISelMITest.h
   49 operator<<(std::ostream &OS, const LLT Ty);
unittests/CodeGen/GlobalISel/KnownBitsTest.cpp
  127   const LLT S32 = LLT::scalar(32);
  127   const LLT S32 = LLT::scalar(32);
unittests/CodeGen/GlobalISel/LegalizerHelperTest.cpp
   39       B.buildInstr(TargetOpcode::G_CTTZ, {LLT::scalar(64)}, {Copies[0]});
   71       B.buildInstr(TargetOpcode::G_CTTZ, {LLT::scalar(64)}, {Copies[0]});
  105       B.buildInstr(TargetOpcode::G_CTTZ, {LLT::scalar(64)}, {Copies[0]});
  136   LLT s8{LLT::scalar(8)};
  136   LLT s8{LLT::scalar(8)};
  137   LLT s16{LLT::scalar(16)};
  137   LLT s16{LLT::scalar(16)};
  168   LLT s8{LLT::scalar(8)};
  168   LLT s8{LLT::scalar(8)};
  169   LLT s16{LLT::scalar(16)};
  169   LLT s16{LLT::scalar(16)};
  170   LLT s32{LLT::scalar(32)};
  170   LLT s32{LLT::scalar(32)};
  201                               {LLT::scalar(64)}, {Copies[0]});
  228       B.buildInstr(TargetOpcode::G_CTLZ, {LLT::scalar(64)}, {Copies[0]});
  259       B.buildInstr(TargetOpcode::G_CTLZ, {LLT::scalar(64)}, {Copies[0]});
  290   LLT s8{LLT::scalar(8)};
  290   LLT s8{LLT::scalar(8)};
  331   LLT s8{LLT::scalar(8)};
  331   LLT s8{LLT::scalar(8)};
  332   LLT s16{LLT::scalar(16)};
  332   LLT s16{LLT::scalar(16)};
  366   LLT s8{LLT::scalar(8)};
  366   LLT s8{LLT::scalar(8)};
  367   LLT s16{LLT::scalar(16)};
  367   LLT s16{LLT::scalar(16)};
  402   LLT s8{LLT::scalar(8)};
  402   LLT s8{LLT::scalar(8)};
  403   LLT s16{LLT::scalar(16)};
  403   LLT s16{LLT::scalar(16)};
  435   LLT s8{LLT::scalar(8)};
  435   LLT s8{LLT::scalar(8)};
  436   LLT s16{LLT::scalar(16)};
  436   LLT s16{LLT::scalar(16)};
  469   LLT s8{LLT::scalar(8)};
  469   LLT s8{LLT::scalar(8)};
  470   LLT s16{LLT::scalar(16)};
  470   LLT s16{LLT::scalar(16)};
  503   LLT s8{LLT::scalar(8)};
  503   LLT s8{LLT::scalar(8)};
  504   LLT s16{LLT::scalar(16)};
  504   LLT s16{LLT::scalar(16)};
  506   unsigned CarryReg = MRI->createGenericVirtualRegister(LLT::scalar(1));
  542   LLT s8{LLT::scalar(8)};
  542   LLT s8{LLT::scalar(8)};
  543   LLT s16{LLT::scalar(16)};
  543   LLT s16{LLT::scalar(16)};
  545   unsigned CarryReg = MRI->createGenericVirtualRegister(LLT::scalar(1));
  573   const LLT V2S32 = LLT::vector(2, 32);
  573   const LLT V2S32 = LLT::vector(2, 32);
  574   const LLT V5S32 = LLT::vector(5, 32);
  574   const LLT V5S32 = LLT::vector(5, 32);
  620   LLT s32 = LLT::scalar(32);
  620   LLT s32 = LLT::scalar(32);
  621   LLT v2s32 = LLT::vector(2, 32);
  621   LLT v2s32 = LLT::vector(2, 32);
  622   LLT v6s32 = LLT::vector(6, 32);
  622   LLT v6s32 = LLT::vector(6, 32);
  661   LLT s1 = LLT::scalar(1);
  661   LLT s1 = LLT::scalar(1);
  662   LLT s32 = LLT::scalar(32);
  662   LLT s32 = LLT::scalar(32);
  663   LLT s64 = LLT::scalar(64);
  663   LLT s64 = LLT::scalar(64);
  664   LLT v2s32 = LLT::vector(2, 32);
  664   LLT v2s32 = LLT::vector(2, 32);
  665   LLT v5s32 = LLT::vector(5, 32);
  665   LLT v5s32 = LLT::vector(5, 32);
  673   LLT PhiTy = v5s32;
  763     B.buildInstr(TargetOpcode::G_FADD, {LLT::scalar(64)}, {Copies[0], Copies[1]},
  768     B.buildInstr(TargetOpcode::G_FNEG, {LLT::scalar(64)}, {FAdd.getReg(0)},
  773     B.buildInstr(TargetOpcode::G_FNEG, {LLT::scalar(64)}, {Copies[0]},
  801   LLT s64 = LLT::scalar(64);
  801   LLT s64 = LLT::scalar(64);
  802   LLT v2s32 = LLT::vector(2, 32);
  802   LLT v2s32 = LLT::vector(2, 32);
  879   LLT S32 = LLT::scalar(32);
  879   LLT S32 = LLT::scalar(32);
  880   LLT S16 = LLT::scalar(16);
  880   LLT S16 = LLT::scalar(16);
  881   LLT V2S16 = LLT::vector(2, S16);
  881   LLT V2S16 = LLT::vector(2, S16);
  882   LLT V2S32 = LLT::vector(2, S32);
  882   LLT V2S32 = LLT::vector(2, S32);
  925   const LLT S32 = LLT::scalar(32);
  925   const LLT S32 = LLT::scalar(32);
  926   const LLT S24 = LLT::scalar(24);
  926   const LLT S24 = LLT::scalar(24);
  927   const LLT S21 = LLT::scalar(21);
  927   const LLT S21 = LLT::scalar(21);
  928   const LLT S16 = LLT::scalar(16);
  928   const LLT S16 = LLT::scalar(16);
  929   const LLT S9 = LLT::scalar(9);
  929   const LLT S9 = LLT::scalar(9);
  930   const LLT S8 = LLT::scalar(8);
  930   const LLT S8 = LLT::scalar(8);
  931   const LLT S3 = LLT::scalar(3);
  931   const LLT S3 = LLT::scalar(3);
 1033   const LLT S32 = LLT::scalar(32);
 1033   const LLT S32 = LLT::scalar(32);
 1034   const LLT S64 = LLT::scalar(64);
 1034   const LLT S64 = LLT::scalar(64);
 1035   const LLT P0 = LLT::pointer(0, 64);
 1035   const LLT P0 = LLT::pointer(0, 64);
 1069       TargetOpcode::G_SEXT_INREG, {LLT::scalar(32)},
 1070       {B.buildInstr(TargetOpcode::G_TRUNC, {LLT::scalar(32)}, {Copies[0]}),
 1100       TargetOpcode::G_SEXT_INREG, {LLT::scalar(16)},
 1101       {B.buildInstr(TargetOpcode::G_TRUNC, {LLT::scalar(16)}, {Copies[0]}),
 1130       TargetOpcode::G_SEXT_INREG, {LLT::scalar(32)},
 1131       {B.buildInstr(TargetOpcode::G_TRUNC, {LLT::scalar(32)}, {Copies[0]}),
 1162       TargetOpcode::G_SEXT_INREG, {LLT::scalar(32)},
 1163       {B.buildInstr(TargetOpcode::G_TRUNC, {LLT::scalar(32)}, {Copies[0]}),
unittests/CodeGen/GlobalISel/LegalizerInfoTest.cpp
   53       L.setAction({Op, 0, LLT::scalar(Size)}, Legal);
   92   L.setAction({G_ADD, LLT::vector(8, 8)}, Legal);
   93   L.setAction({G_ADD, LLT::vector(16, 8)}, Legal);
   94   L.setAction({G_ADD, LLT::vector(4, 16)}, Legal);
   95   L.setAction({G_ADD, LLT::vector(8, 16)}, Legal);
   96   L.setAction({G_ADD, LLT::vector(2, 32)}, Legal);
   97   L.setAction({G_ADD, LLT::vector(4, 32)}, Legal);
  102   L.setAction({G_ADD, 0, LLT::scalar(32)}, Legal);
  126   LLT p0 = LLT::pointer(0, 64);
  126   LLT p0 = LLT::pointer(0, 64);
  127   LLT s64 = LLT::scalar(64);
  127   LLT s64 = LLT::scalar(64);
  154   LLT s32 = LLT::scalar(32);
  154   LLT s32 = LLT::scalar(32);
  155   LLT s64 = LLT::scalar(64);
  155   LLT s64 = LLT::scalar(64);
  174     L.setAction({G_UREM, 0, LLT::scalar(Size)}, Legal);
  209   const LLT s5 = LLT::scalar(5);
  209   const LLT s5 = LLT::scalar(5);
  210   const LLT s8 = LLT::scalar(8);
  210   const LLT s8 = LLT::scalar(8);
  211   const LLT s16 = LLT::scalar(16);
  211   const LLT s16 = LLT::scalar(16);
  212   const LLT s32 = LLT::scalar(32);
  212   const LLT s32 = LLT::scalar(32);
  213   const LLT s33 = LLT::scalar(33);
  213   const LLT s33 = LLT::scalar(33);
  214   const LLT s64 = LLT::scalar(64);
  214   const LLT s64 = LLT::scalar(64);
  216   const LLT v2s5 = LLT::vector(2, 5);
  216   const LLT v2s5 = LLT::vector(2, 5);
  217   const LLT v2s8 = LLT::vector(2, 8);
  217   const LLT v2s8 = LLT::vector(2, 8);
  218   const LLT v2s16 = LLT::vector(2, 16);
  218   const LLT v2s16 = LLT::vector(2, 16);
  219   const LLT v2s32 = LLT::vector(2, 32);
  219   const LLT v2s32 = LLT::vector(2, 32);
  220   const LLT v3s32 = LLT::vector(3, 32);
  220   const LLT v3s32 = LLT::vector(3, 32);
  221   const LLT v4s32 = LLT::vector(4, 32);
  221   const LLT v4s32 = LLT::vector(4, 32);
  222   const LLT v2s33 = LLT::vector(2, 33);
  222   const LLT v2s33 = LLT::vector(2, 33);
  223   const LLT v2s64 = LLT::vector(2, 64);
  223   const LLT v2s64 = LLT::vector(2, 64);
  225   const LLT p0 = LLT::pointer(0, 32);
  225   const LLT p0 = LLT::pointer(0, 32);
  226   const LLT v3p0 = LLT::vector(3, p0);
  226   const LLT v3p0 = LLT::vector(3, p0);
  227   const LLT v4p0 = LLT::vector(4, p0);
  227   const LLT v4p0 = LLT::vector(4, p0);
  363   const LLT s32 = LLT::scalar(32);
  363   const LLT s32 = LLT::scalar(32);
  364   const LLT p0 = LLT::pointer(0, 64);
  364   const LLT p0 = LLT::pointer(0, 64);
unittests/CodeGen/GlobalISel/MachineIRBuilderTest.cpp
   17   B.buildConstant(LLT::scalar(32), 42);
   18   B.buildFConstant(LLT::scalar(32), 1.0);
   20   B.buildConstant(LLT::vector(2, 32), 99);
   21   B.buildFConstant(LLT::vector(2, 32), 2.0);
   25   B.buildFConstant(LLT::scalar(64), KVal);
   84   LLT s64 = LLT::scalar(64);
   84   LLT s64 = LLT::scalar(64);
  109   B.buildUnmerge(LLT::scalar(32), Copies[0]);
  110   B.buildUnmerge(LLT::scalar(16), Copies[1]);
  131   LLT S64 = LLT::scalar(64);
  131   LLT S64 = LLT::scalar(64);
  164   LLT S64 = LLT::scalar(64);
  164   LLT S64 = LLT::scalar(64);
  193   LLT S64 = LLT::scalar(64);
  193   LLT S64 = LLT::scalar(64);
  194   LLT S128 = LLT::scalar(128);
  194   LLT S128 = LLT::scalar(128);
  222   LLT S32 = LLT::scalar(32);
  222   LLT S32 = LLT::scalar(32);
  250   LLT S32 = LLT::scalar(32);
  250   LLT S32 = LLT::scalar(32);
  275   LLT S64 = LLT::scalar(64);
  275   LLT S64 = LLT::scalar(64);
  301   LLT S64 = LLT::scalar(64);
  301   LLT S64 = LLT::scalar(64);
  302   LLT P0 = LLT::pointer(0, 64);
  302   LLT P0 = LLT::pointer(0, 64);
  332   LLT S32 = LLT::scalar(32);
  332   LLT S32 = LLT::scalar(32);
  340   B.buildMerge(LLT::scalar(128), {RegC0, RegC1, RegC2, RegC3});
  342   LLT V2x32 = LLT::vector(2, 32);
  342   LLT V2x32 = LLT::vector(2, 32);
  348   B.buildMerge(LLT::vector(4, 32), {RegC0C1, RegC2C3});
unittests/CodeGen/GlobalISel/PatternMatchTest.cpp
   37   auto MIBCst = B.buildConstant(LLT::scalar(64), 42);
   48   LLT s64 = LLT::scalar(64);
   48   LLT s64 = LLT::scalar(64);
  138   LLT s32 = LLT::scalar(32);
  138   LLT s32 = LLT::scalar(32);
  168   LLT s64 = LLT::scalar(64);
  168   LLT s64 = LLT::scalar(64);
  180   LLT s16 = LLT::scalar(16);
  180   LLT s16 = LLT::scalar(16);
  199   LLT s64 = LLT::scalar(64);
  199   LLT s64 = LLT::scalar(64);
  200   LLT s32 = LLT::scalar(32);
  200   LLT s32 = LLT::scalar(32);
  247   LLT s64 = LLT::scalar(64);
  247   LLT s64 = LLT::scalar(64);
  248   LLT s32 = LLT::scalar(32);
  248   LLT s32 = LLT::scalar(32);
  256   LLT v2s32 = LLT::vector(2, 32);
  256   LLT v2s32 = LLT::vector(2, 32);
  266   LLT PtrTy = LLT::pointer(0, 64);
  266   LLT PtrTy = LLT::pointer(0, 64);
  283   LLT s64 = LLT::scalar(64);
  283   LLT s64 = LLT::scalar(64);
  284   LLT s32 = LLT::scalar(32);
  284   LLT s32 = LLT::scalar(32);
  308       m_any_of(m_SpecificType(LLT::scalar(16)), m_GSub(m_Reg(), m_Reg())));
  317   LLT s64 = LLT::scalar(64);
  317   LLT s64 = LLT::scalar(64);
  320   B.buildCast(LLT::pointer(0, 32), MIBAdd);
  321   B.buildCast(LLT::pointer(1, 32), MIBAdd);
unittests/CodeGen/LowLevelTypeTest.cpp
   25     const LLT Ty = LLT::scalar(S);
   25     const LLT Ty = LLT::scalar(S);
   54       const LLT STy = LLT::scalar(S);
   54       const LLT STy = LLT::scalar(S);
   55       const LLT VTy = LLT::vector(Elts, S);
   55       const LLT VTy = LLT::vector(Elts, S);
   59         const LLT VSTy = LLT::vector(Elts, STy);
   59         const LLT VSTy = LLT::vector(Elts, STy);
  110   const LLT P0 = LLT::pointer(0, 32);
  110   const LLT P0 = LLT::pointer(0, 32);
  111   const LLT P1 = LLT::pointer(1, 64);
  111   const LLT P1 = LLT::pointer(1, 64);
  113   const LLT S32 = LLT::scalar(32);
  113   const LLT S32 = LLT::scalar(32);
  114   const LLT S64 = LLT::scalar(64);
  114   const LLT S64 = LLT::scalar(64);
  116   const LLT V2S32 = LLT::vector(2, 32);
  116   const LLT V2S32 = LLT::vector(2, 32);
  117   const LLT V2S64 = LLT::vector(2, 64);
  117   const LLT V2S64 = LLT::vector(2, 64);
  119   const LLT V2P0 = LLT::vector(2, P0);
  119   const LLT V2P0 = LLT::vector(2, P0);
  120   const LLT V2P1 = LLT::vector(2, P1);
  120   const LLT V2P1 = LLT::vector(2, P1);
  146   const LLT P0 = LLT::pointer(0, 32);
  146   const LLT P0 = LLT::pointer(0, 32);
  147   const LLT V2P0 = LLT::vector(2, P0);
  147   const LLT V2P0 = LLT::vector(2, P0);
  172       const LLT Ty = LLT::pointer(AS, DL.getPointerSizeInBits(AS));
  172       const LLT Ty = LLT::pointer(AS, DL.getPointerSizeInBits(AS));
  173       const LLT VTy = LLT::vector(NumElts, Ty);
  173       const LLT VTy = LLT::vector(NumElts, Ty);
  210   const LLT Ty;
usr/include/c++/7.4.0/bits/alloc_traits.h
  387       using allocator_type = allocator<_Tp>;
  389       using value_type = _Tp;
  392       using pointer = _Tp*;
  395       using const_pointer = const _Tp*;
  474 	construct(allocator_type& __a, _Up* __p, _Args&&... __args)
  474 	construct(allocator_type& __a, _Up* __p, _Args&&... __args)
  486 	destroy(allocator_type& __a, _Up* __p)
usr/include/c++/7.4.0/bits/allocator.h
  108     class allocator: public __allocator_base<_Tp>
  113       typedef _Tp*       pointer;
  114       typedef const _Tp* const_pointer;
  115       typedef _Tp&       reference;
  116       typedef const _Tp& const_reference;
  117       typedef _Tp        value_type;
  137 	allocator(const allocator<_Tp1>&) throw() { }
usr/include/c++/7.4.0/bits/move.h
   46     inline _GLIBCXX_CONSTEXPR _Tp*
   47     __addressof(_Tp& __r) _GLIBCXX_NOEXCEPT
   72     constexpr _Tp&&
   73     forward(typename std::remove_reference<_Tp>::type& __t) noexcept
   83     constexpr _Tp&&
   84     forward(typename std::remove_reference<_Tp>::type&& __t) noexcept
   98     move(_Tp&& __t) noexcept
  104     : public __and_<__not_<is_nothrow_move_constructible<_Tp>>,
  105                     is_copy_constructible<_Tp>>::type { };
usr/include/c++/7.4.0/bits/std_function.h
  314       _M_invoke(const _Any_data& __functor, _ArgTypes&&... __args)
  317 	    std::forward<_ArgTypes>(__args)...);
  390     : public _Maybe_unary_or_binary_function<_Res, _ArgTypes...>,
  595       _Res operator()(_ArgTypes... __args) const;
  628       using _Invoker_type = _Res (*)(const _Any_data&, _ArgTypes&&...);
  689 	typedef _Function_handler<_Res(_ArgTypes...), _Functor> _My_handler;
  706       return _M_invoker(_M_functor, std::forward<_ArgTypes>(__args)...);
usr/include/c++/7.4.0/bits/stl_algo.h
 3900 	 const _Tp& __val)
usr/include/c++/7.4.0/bits/stl_construct.h
   74     _Construct(_T1* __p, _Args&&... __args)
   74     _Construct(_T1* __p, _Args&&... __args)
   75     { ::new(static_cast<void*>(__p)) _T1(std::forward<_Args>(__args)...); }
   75     { ::new(static_cast<void*>(__p)) _T1(std::forward<_Args>(__args)...); }
  204 	     allocator<_Tp>&)
usr/include/c++/7.4.0/bits/stl_iterator.h
 1224     __make_move_if_noexcept_iterator(_Tp* __i)
usr/include/c++/7.4.0/bits/stl_iterator_base_types.h
  181       typedef _Tp                         value_type;
  183       typedef _Tp*                        pointer;
  184       typedef _Tp&                        reference;
  192       typedef _Tp                         value_type;
  194       typedef const _Tp*                  pointer;
  195       typedef const _Tp&                  reference;
usr/include/c++/7.4.0/bits/stl_pair.h
  100 	return __and_<is_constructible<_T1, const _U1&>,
  100 	return __and_<is_constructible<_T1, const _U1&>,
  101 		      is_constructible<_T2, const _U2&>>::value;
  101 		      is_constructible<_T2, const _U2&>>::value;
  107 	return __and_<is_convertible<const _U1&, _T1>,
  107 	return __and_<is_convertible<const _U1&, _T1>,
  108 		      is_convertible<const _U2&, _T2>>::value;
  108 		      is_convertible<const _U2&, _T2>>::value;
  114 	return __and_<is_constructible<_T1, _U1&&>,
  114 	return __and_<is_constructible<_T1, _U1&&>,
  115 		      is_constructible<_T2, _U2&&>>::value;
  115 		      is_constructible<_T2, _U2&&>>::value;
  121 	return __and_<is_convertible<_U1&&, _T1>,
  121 	return __and_<is_convertible<_U1&&, _T1>,
  122 		      is_convertible<_U2&&, _T2>>::value;
  122 		      is_convertible<_U2&&, _T2>>::value;
  128 	using __do_converts = __and_<is_convertible<const _U1&, _T1>,
  128 	using __do_converts = __and_<is_convertible<const _U1&, _T1>,
  129 				  is_convertible<_U2&&, _T2>>;
  129 				  is_convertible<_U2&&, _T2>>;
  133 	return __and_<is_constructible<_T1, const _U1&>,
  133 	return __and_<is_constructible<_T1, const _U1&>,
  134 		      is_constructible<_T2, _U2&&>,
  134 		      is_constructible<_T2, _U2&&>,
  142 	using __do_converts = __and_<is_convertible<_U1&&, _T1>,
  142 	using __do_converts = __and_<is_convertible<_U1&&, _T1>,
  143 				  is_convertible<const _U2&, _T2>>;
  143 				  is_convertible<const _U2&, _T2>>;
  147 	return __and_<is_constructible<_T1, _U1&&>,
  147 	return __and_<is_constructible<_T1, _U1&&>,
  148 		      is_constructible<_T2, const _U2&&>,
  148 		      is_constructible<_T2, const _U2&&>,
  209     : private __pair_base<_T1, _T2>
  209     : private __pair_base<_T1, _T2>
  211       typedef _T1 first_type;    /// @c first_type is the first bound type
  212       typedef _T2 second_type;   /// @c second_type is the second bound type
  214       _T1 first;                 /// @c first is a copy of the first object
  215       _T2 second;                /// @c second is a copy of the second object
  252       using _PCCP = _PCC<true, _T1, _T2>;
  252       using _PCCP = _PCC<true, _T1, _T2>;
  260       constexpr pair(const _T1& __a, const _T2& __b)
  260       constexpr pair(const _T1& __a, const _T2& __b)
  269       explicit constexpr pair(const _T1& __a, const _T2& __b)
  269       explicit constexpr pair(const _T1& __a, const _T2& __b)
  283 			    _T1, _T2>;
  283 			    _T1, _T2>;
  291         constexpr pair(const pair<_U1, _U2>& __p)
  311        constexpr pair(_U1&& __x, const _T2& __y)
  311        constexpr pair(_U1&& __x, const _T2& __y)
  318        explicit constexpr pair(_U1&& __x, const _T2& __y)
  325        constexpr pair(const _T1& __x, _U2&& __y)
  325        constexpr pair(const _T1& __x, _U2&& __y)
  326        : first(__x), second(std::forward<_U2>(__y)) { }
  332        explicit pair(const _T1& __x, _U2&& __y)
  341 	constexpr pair(_U1&& __x, _U2&& __y)
  341 	constexpr pair(_U1&& __x, _U2&& __y)
  342 	: first(std::forward<_U1>(__x)), second(std::forward<_U2>(__y)) { }
  360 	constexpr pair(pair<_U1, _U2>&& __p)
  362 	  second(std::forward<_U2>(__p.second)) { }
  379 		__and_<is_copy_assignable<_T1>,
  380 		       is_copy_assignable<_T2>>::value,
  390 		__and_<is_move_assignable<_T1>,
  391 		       is_move_assignable<_T2>>::value,
  402       typename enable_if<__and_<is_assignable<_T1&, const _U1&>,
  402       typename enable_if<__and_<is_assignable<_T1&, const _U1&>,
  403 				is_assignable<_T2&, const _U2&>>::value,
  403 				is_assignable<_T2&, const _U2&>>::value,
  405 	operator=(const pair<_U1, _U2>& __p)
  405 	operator=(const pair<_U1, _U2>& __p)
  413       typename enable_if<__and_<is_assignable<_T1&, _U1&&>,
  413       typename enable_if<__and_<is_assignable<_T1&, _U1&&>,
  414 				is_assignable<_T2&, _U2&&>>::value,
  414 				is_assignable<_T2&, _U2&&>>::value,
  416 	operator=(pair<_U1, _U2>&& __p)
  416 	operator=(pair<_U1, _U2>&& __p)
  448     operator==(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y)
  448     operator==(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y)
  448     operator==(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y)
  448     operator==(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y)
  523                    typename __decay_and_strip<_T2>::__type>
  524     make_pair(_T1&& __x, _T2&& __y)
  527       typedef typename __decay_and_strip<_T2>::__type __ds_type2;
  529       return __pair_type(std::forward<_T1>(__x), std::forward<_T2>(__y));
usr/include/c++/7.4.0/bits/stl_uninitialized.h
  144 		      const _Tp& __x)
  182 		       const _Tp& __x)
  288 			   _ForwardIterator __result, allocator<_Tp>&)
usr/include/c++/7.4.0/bits/stl_vector.h
   77 	rebind<_Tp>::other _Tp_alloc_type;
  216     class vector : protected _Vector_base<_Tp, _Alloc>
  227       typedef _Vector_base<_Tp, _Alloc>			_Base;
  232       typedef _Tp					value_type;
  919       _Tp*
  923       const _Tp*
 1483 	_M_realloc_insert(iterator __position, _Args&&... __args);
usr/include/c++/7.4.0/bits/unique_ptr.h
  824     make_unique(_Args&&... __args)
  825     { return unique_ptr<_Tp>(new _Tp(std::forward<_Args>(__args)...)); }
usr/include/c++/7.4.0/ext/alloc_traits.h
  117       { typedef typename _Base_type::template rebind_alloc<_Tp> other; };
usr/include/c++/7.4.0/ext/new_allocator.h
   63       typedef _Tp*       pointer;
   64       typedef const _Tp* const_pointer;
   65       typedef _Tp&       reference;
   66       typedef const _Tp& const_reference;
   67       typedef _Tp        value_type;
  111 	return static_cast<_Tp*>(::operator new(__n * sizeof(_Tp)));
  130       { return size_t(-1) / sizeof(_Tp); }
  135 	construct(_Up* __p, _Args&&... __args)
  135 	construct(_Up* __p, _Args&&... __args)
  136 	{ ::new((void *)__p) _Up(std::forward<_Args>(__args)...); }
  140 	destroy(_Up* __p) { __p->~_Up(); }
usr/include/c++/7.4.0/initializer_list
   50       typedef _E 		value_type;
   51       typedef const _E& 	reference;
   52       typedef const _E& 	const_reference;
   54       typedef const _E* 	iterator;
   55       typedef const _E* 	const_iterator;
usr/include/c++/7.4.0/tuple
  125       constexpr _Head_base(const _Head& __h)
  132         constexpr _Head_base(_UHead&& __h)
  159       static constexpr _Head&
  162       static constexpr const _Head&
  210       constexpr _Tuple_impl(const _Head& __head, const _Tail&... __tail)
  216         constexpr _Tuple_impl(_UHead&& __head, _UTail&&... __tail)
  242 	_Tuple_impl(allocator_arg_t __tag, const _Alloc& __a)
  248 		    const _Head& __head, const _Tail&... __tail)
  350       static constexpr _Head&
  353       static constexpr const _Head&
  360       constexpr _Tuple_impl(const _Head& __head)
  365         constexpr _Tuple_impl(_UHead&& __head)
  390 		    const _Head& __head)
  473       return __and_<is_constructible<_Elements, const _UElements&>...>::value;
  479       return __and_<is_convertible<const _UElements&, _Elements>...>::value;
  485       return __and_<is_constructible<_Elements, _UElements&&>...>::value;
  491       return __and_<is_convertible<_UElements&&, _Elements>...>::value;
  608         constexpr tuple(const _Elements&... __elements)
  619       explicit constexpr tuple(const _Elements&... __elements)
  646         constexpr tuple(_UElements&&... __elements)
  730 	      const _Elements&... __elements)
  741                        const _Elements&... __elements)
 1302     constexpr _Head&
 1307     constexpr const _Head&
 1313     constexpr __tuple_element_t<__i, tuple<_Elements...>>&
 1319     constexpr const __tuple_element_t<__i, tuple<_Elements...>>&
 1325     constexpr __tuple_element_t<__i, tuple<_Elements...>>&&
usr/include/c++/7.4.0/type_traits
  215     : public __is_void_helper<typename remove_cv<_Tp>::type>::type
  326     : public __is_integral_helper<typename remove_cv<_Tp>::type>::type
  354     : public __is_floating_point_helper<typename remove_cv<_Tp>::type>::type
  381     : public __is_pointer_helper<typename remove_cv<_Tp>::type>::type
  567     : public __is_null_pointer_helper<typename remove_cv<_Tp>::type>::type
  581     : public __or_<is_lvalue_reference<_Tp>,
  582                    is_rvalue_reference<_Tp>>::type
  588     : public __or_<is_integral<_Tp>, is_floating_point<_Tp>>::type
  588     : public __or_<is_integral<_Tp>, is_floating_point<_Tp>>::type
  601     : public __not_<__or_<is_function<_Tp>, is_reference<_Tp>,
  601     : public __not_<__or_<is_function<_Tp>, is_reference<_Tp>,
  602                           is_void<_Tp>>>::type
  611     : public __or_<is_arithmetic<_Tp>, is_enum<_Tp>, is_pointer<_Tp>,
  611     : public __or_<is_arithmetic<_Tp>, is_enum<_Tp>, is_pointer<_Tp>,
  611     : public __or_<is_arithmetic<_Tp>, is_enum<_Tp>, is_pointer<_Tp>,
  612                    is_member_pointer<_Tp>, is_null_pointer<_Tp>>::type
  612                    is_member_pointer<_Tp>, is_null_pointer<_Tp>>::type
  631     : public __is_member_pointer_helper<typename remove_cv<_Tp>::type>::type
  638     : public __or_<is_object<_Tp>, is_reference<_Tp>>::type
  638     : public __or_<is_object<_Tp>, is_reference<_Tp>>::type
  762     typename add_rvalue_reference<_Tp>::type declval() noexcept;
  777     : public __and_<is_array<_Tp>, __not_<extent<_Tp>>>
  777     : public __and_<is_array<_Tp>, __not_<extent<_Tp>>>
  798       typedef decltype(__test<_Tp>(0)) type;
  811                remove_all_extents<_Tp>::type>::type
  825     : public __is_destructible_safe<_Tp>::type
  889       typedef decltype(__test<_Tp>(0)) type;
  894     : public __and_<__not_<is_void<_Tp>>,
  895                     __is_default_constructible_impl<_Tp>>
  915     : public __is_default_constructible_atom<_Tp>::type
  921     : public __is_default_constructible_safe<_Tp>::type
  984       typedef decltype(__test<_Tp, _Arg>(0)) type;
  989     : public __and_<is_destructible<_Tp>,
  990                     __is_direct_constructible_impl<_Tp, _Arg>>
 1072 			 __is_direct_constructible_ref_cast<_Tp, _Arg>,
 1073 			 __is_direct_constructible_new_safe<_Tp, _Arg>
 1079     : public __is_direct_constructible_new<_Tp, _Arg>::type
 1119     : public __is_direct_constructible<_Tp, _Arg>
 1130     : public __is_constructible_impl<_Tp, _Args...>::type
 1142     : public is_constructible<_Tp, const _Tp&>
 1142     : public is_constructible<_Tp, const _Tp&>
 1148     : public __is_copy_constructible_impl<_Tp>
 1160     : public is_constructible<_Tp, _Tp&&>
 1160     : public is_constructible<_Tp, _Tp&&>
 1166     : public __is_move_constructible_impl<_Tp>
 1215     : public __and_<is_constructible<_Tp, _Args...>,
 1216 		    __is_nt_constructible_impl<_Tp, _Args...>>
 1246     : public is_nothrow_constructible<_Tp, _Tp&&>
 1246     : public is_nothrow_constructible<_Tp, _Tp&&>
 1252     : public __is_nothrow_move_constructible_impl<_Tp>
 1286     : public is_assignable<_Tp&, const _Tp&>
 1286     : public is_assignable<_Tp&, const _Tp&>
 1292     : public __is_copy_assignable_impl<_Tp>
 1304     : public is_assignable<_Tp&, _Tp&&>
 1304     : public is_assignable<_Tp&, _Tp&&>
 1310     : public __is_move_assignable_impl<_Tp>
 1352     : public is_nothrow_assignable<_Tp&, _Tp&&>
 1352     : public is_nothrow_assignable<_Tp&, _Tp&&>
 1358     : public __is_nt_move_assignable_impl<_Tp>
 1377     static void __helper(const _Tp&);
 1390     typedef decltype(__test(declval<_Tp>())) type;
 1395       : public __is_implicitly_default_constructible_impl<_Tp>::type
 1400       : public __and_<is_default_constructible<_Tp>,
 1401                       __is_implicitly_default_constructible_safe<_Tp>>
 1526 	static void __test_aux(_To1);
 1538       typedef decltype(__test<_From, _To>(0)) type;
 1545     : public __is_convertible_helper<_From, _To>::type
 1554     { typedef _Tp     type; };
 1558     { typedef _Tp     type; };
 1563     { typedef _Tp     type; };
 1574       remove_const<typename remove_volatile<_Tp>::type>::type     type;
 1629     { typedef _Tp   type; };
 1633     { typedef _Tp   type; };
 1659     { typedef _Tp&&   type; };
 1664     : public __add_rvalue_reference_helper<_Tp>
 1955     { typedef _Tp     type; };
 2104     { typedef typename remove_cv<_Up>::type __type; };
 2118       typedef typename remove_reference<_Tp>::type __remove_type;
 2131       typedef _Tp __type;
 2144 	typename decay<_Tp>::type>::__type __type;
 2428       std::declval<_Fn>()(std::declval<_Args>()...)
 2439       typedef decltype(_S_test<_Functor, _ArgTypes...>(0)) type;
 2452 	_Functor, _ArgTypes...
 2458     : public __invoke_result<_Functor, _ArgTypes...>
utils/TableGen/GlobalISelEmitter.cpp
  101   LLT Ty;
  105   LLTCodeGen(const LLT &Ty) : Ty(Ty) {}
  151   const LLT &get() const { return Ty; }
  192         LLT::vector(VT.getVectorNumElements(), VT.getScalarSizeInBits()));
  195     return LLTCodeGen(LLT::scalar(VT.getSizeInBits()));
 1506   Optional<Kind *> addPredicate(Args &&... args) {
 1510         getInsnVarID(), getOpIdx(), std::forward<Args>(args)...));
 1605     addPredicate<LLTOperandMatcher>(LLT::pointer(VTy.getPtrAddrSpace(),
utils/unittest/googletest/include/gtest/gtest-printers.h
  223 void DefaultPrintNonContainerTo(const T& value, ::std::ostream* os) {
  276   static ::std::string Format(const ToPrint& value) {
  351     const T1& value, const T2& /* other_operand */) {
  351     const T1& value, const T2& /* other_operand */) {
  352   return FormatForComparison<T1, T2>::Format(value);
  352   return FormatForComparison<T1, T2>::Format(value);
  366 void UniversalPrint(const T& value, ::std::ostream* os);
  373                     const C& container, ::std::ostream* os) {
  439                     const T& value, ::std::ostream* os) {
  455 void PrintTo(const T& value, ::std::ostream* os) {
  478   DefaultPrintTo(IsContainerTest<T>(0), is_pointer<T>(), value, os);
  699   static void Print(const T& value, ::std::ostream* os) {
  784   static void Print(const T& value, ::std::ostream* os) {
  856   typedef T T1;
  983   internal::UniversalTersePrinter<T>::Print(value, &ss);
utils/unittest/googletest/include/gtest/gtest.h
 1377                                    const T1& lhs, const T2& rhs) {
 1377                                    const T1& lhs, const T2& rhs) {
 1389                             const T1& lhs,
 1390                             const T2& rhs) {
 1419                                  const T1& lhs,
 1420                                  const T2& rhs) {
 1487                                    const T1& val1, const T2& val2,
 1487                                    const T1& val1, const T2& val2,
utils/unittest/googletest/include/gtest/internal/custom/raw-ostream.h
   35 auto printable(const T &V) -> decltype(StreamSwitch<T>::printable(V)) {
   35 auto printable(const T &V) -> decltype(StreamSwitch<T>::printable(V)) {
   37   return StreamSwitch<T>::printable(V);
   54   const T& V;
   55   friend std::ostream &operator<<(std::ostream &S, const RawStreamProxy<T> &V) {
   69   static const RawStreamProxy<T> printable(const T &V) { return {V}; }
   69   static const RawStreamProxy<T> printable(const T &V) { return {V}; }
utils/unittest/googletest/include/gtest/internal/gtest-internal.h
   94 ::std::string PrintToString(const T& value);