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

Declarations

lib/Target/Hexagon/BitTracker.h
   40   struct RegisterCell;

References

lib/Target/Hexagon/BitTracker.cpp
  115   raw_ostream &operator<<(raw_ostream &OS, const BT::RegisterCell &RC) {
  183   for (const std::pair<unsigned, RegisterCell> P : Map)
  201 bool BT::RegisterCell::meet(const RegisterCell &RC, unsigned SelfR) {
  214 BT::RegisterCell &BT::RegisterCell::insert(const BT::RegisterCell &RC,
  214 BT::RegisterCell &BT::RegisterCell::insert(const BT::RegisterCell &RC,
  235 BT::RegisterCell BT::RegisterCell::extract(const BitMask &M) const {
  239     RegisterCell RC(E-B+1);
  245   RegisterCell RC(E+(W-B)+1);
  253 BT::RegisterCell &BT::RegisterCell::rol(uint16_t Sh) {
  261   RegisterCell Tmp(W-Sh);
  274 BT::RegisterCell &BT::RegisterCell::fill(uint16_t B, uint16_t E,
  282 BT::RegisterCell &BT::RegisterCell::cat(const RegisterCell &RC) {
  282 BT::RegisterCell &BT::RegisterCell::cat(const RegisterCell &RC) {
  310 bool BT::RegisterCell::operator== (const RegisterCell &RC) const {
  320 BT::RegisterCell &BT::RegisterCell::regify(unsigned R) {
  348 BT::RegisterCell BT::MachineEvaluator::getCell(const RegisterRef &RR,
  355     return RegisterCell::self(0, BW);
  362     return RegisterCell::self(0, BW);
  372   return RegisterCell::top(BW);
  375 void BT::MachineEvaluator::putCell(const RegisterRef &RR, RegisterCell RC,
  388 bool BT::MachineEvaluator::isInt(const RegisterCell &A) const {
  397 uint64_t BT::MachineEvaluator::toInt(const RegisterCell &A) const {
  412 BT::RegisterCell BT::MachineEvaluator::eIMM(int64_t V, uint16_t W) const {
  413   RegisterCell Res(W);
  422 BT::RegisterCell BT::MachineEvaluator::eIMM(const ConstantInt *CI) const {
  426   RegisterCell Res(BW);
  432 BT::RegisterCell BT::MachineEvaluator::eADD(const RegisterCell &A1,
  432 BT::RegisterCell BT::MachineEvaluator::eADD(const RegisterCell &A1,
  433       const RegisterCell &A2) const {
  436   RegisterCell Res(W);
  465 BT::RegisterCell BT::MachineEvaluator::eSUB(const RegisterCell &A1,
  465 BT::RegisterCell BT::MachineEvaluator::eSUB(const RegisterCell &A1,
  466       const RegisterCell &A2) const {
  469   RegisterCell Res(W);
  498 BT::RegisterCell BT::MachineEvaluator::eMLS(const RegisterCell &A1,
  498 BT::RegisterCell BT::MachineEvaluator::eMLS(const RegisterCell &A1,
  499       const RegisterCell &A2) const {
  502   RegisterCell Res(W);
  508 BT::RegisterCell BT::MachineEvaluator::eMLU(const RegisterCell &A1,
  508 BT::RegisterCell BT::MachineEvaluator::eMLU(const RegisterCell &A1,
  509       const RegisterCell &A2) const {
  512   RegisterCell Res(W);
  518 BT::RegisterCell BT::MachineEvaluator::eASL(const RegisterCell &A1,
  518 BT::RegisterCell BT::MachineEvaluator::eASL(const RegisterCell &A1,
  521   RegisterCell Res = RegisterCell::ref(A1);
  521   RegisterCell Res = RegisterCell::ref(A1);
  527 BT::RegisterCell BT::MachineEvaluator::eLSR(const RegisterCell &A1,
  527 BT::RegisterCell BT::MachineEvaluator::eLSR(const RegisterCell &A1,
  531   RegisterCell Res = RegisterCell::ref(A1);
  531   RegisterCell Res = RegisterCell::ref(A1);
  537 BT::RegisterCell BT::MachineEvaluator::eASR(const RegisterCell &A1,
  537 BT::RegisterCell BT::MachineEvaluator::eASR(const RegisterCell &A1,
  541   RegisterCell Res = RegisterCell::ref(A1);
  541   RegisterCell Res = RegisterCell::ref(A1);
  548 BT::RegisterCell BT::MachineEvaluator::eAND(const RegisterCell &A1,
  548 BT::RegisterCell BT::MachineEvaluator::eAND(const RegisterCell &A1,
  549       const RegisterCell &A2) const {
  552   RegisterCell Res(W);
  570 BT::RegisterCell BT::MachineEvaluator::eORL(const RegisterCell &A1,
  570 BT::RegisterCell BT::MachineEvaluator::eORL(const RegisterCell &A1,
  571       const RegisterCell &A2) const {
  574   RegisterCell Res(W);
  592 BT::RegisterCell BT::MachineEvaluator::eXOR(const RegisterCell &A1,
  592 BT::RegisterCell BT::MachineEvaluator::eXOR(const RegisterCell &A1,
  593       const RegisterCell &A2) const {
  596   RegisterCell Res(W);
  612 BT::RegisterCell BT::MachineEvaluator::eNOT(const RegisterCell &A1) const {
  612 BT::RegisterCell BT::MachineEvaluator::eNOT(const RegisterCell &A1) const {
  614   RegisterCell Res(W);
  627 BT::RegisterCell BT::MachineEvaluator::eSET(const RegisterCell &A1,
  627 BT::RegisterCell BT::MachineEvaluator::eSET(const RegisterCell &A1,
  630   RegisterCell Res = RegisterCell::ref(A1);
  630   RegisterCell Res = RegisterCell::ref(A1);
  635 BT::RegisterCell BT::MachineEvaluator::eCLR(const RegisterCell &A1,
  635 BT::RegisterCell BT::MachineEvaluator::eCLR(const RegisterCell &A1,
  638   RegisterCell Res = RegisterCell::ref(A1);
  638   RegisterCell Res = RegisterCell::ref(A1);
  643 BT::RegisterCell BT::MachineEvaluator::eCLB(const RegisterCell &A1, bool B,
  643 BT::RegisterCell BT::MachineEvaluator::eCLB(const RegisterCell &A1, bool B,
  650   return RegisterCell::self(0, W);
  653 BT::RegisterCell BT::MachineEvaluator::eCTB(const RegisterCell &A1, bool B,
  653 BT::RegisterCell BT::MachineEvaluator::eCTB(const RegisterCell &A1, bool B,
  660   return RegisterCell::self(0, W);
  663 BT::RegisterCell BT::MachineEvaluator::eSXT(const RegisterCell &A1,
  663 BT::RegisterCell BT::MachineEvaluator::eSXT(const RegisterCell &A1,
  667   RegisterCell Res = RegisterCell::ref(A1);
  667   RegisterCell Res = RegisterCell::ref(A1);
  674 BT::RegisterCell BT::MachineEvaluator::eZXT(const RegisterCell &A1,
  674 BT::RegisterCell BT::MachineEvaluator::eZXT(const RegisterCell &A1,
  678   RegisterCell Res = RegisterCell::ref(A1);
  678   RegisterCell Res = RegisterCell::ref(A1);
  683 BT::RegisterCell BT::MachineEvaluator::eXTR(const RegisterCell &A1,
  683 BT::RegisterCell BT::MachineEvaluator::eXTR(const RegisterCell &A1,
  690   RegisterCell Res = RegisterCell::ref(A1).extract(BT::BitMask(B, Last));
  690   RegisterCell Res = RegisterCell::ref(A1).extract(BT::BitMask(B, Last));
  695 BT::RegisterCell BT::MachineEvaluator::eINS(const RegisterCell &A1,
  695 BT::RegisterCell BT::MachineEvaluator::eINS(const RegisterCell &A1,
  696       const RegisterCell &A2, uint16_t AtN) const {
  701   RegisterCell Res = RegisterCell::ref(A1);
  701   RegisterCell Res = RegisterCell::ref(A1);
  703     Res.insert(RegisterCell::ref(A2), BT::BitMask(AtN, AtN+W2-1));
  735       RegisterCell Res(W);
  736       Res.insert(RegisterCell::ref(getCell(RS, Inputs)), mask(RD.Reg, SS));
  737       Res.insert(RegisterCell::ref(getCell(RT, Inputs)), mask(RD.Reg, ST));
  751       RegisterCell Src = getCell(RS, Inputs);
  752       RegisterCell Res(WD);
  808   RegisterCell DefC = ME.getCell(DefRR, Map);
  809   if (DefC == RegisterCell::self(DefRR.Reg, DefBW))    // XXX slow
  827     RegisterCell ResC = ME.getCell(RU, Map);
  863     for (const std::pair<unsigned, RegisterCell> &P : ResMap) {
  885       RegisterCell RefC = RegisterCell::self(RD.Reg, DefBW);
  885       RegisterCell RefC = RegisterCell::self(RD.Reg, DefBW);
  891       RegisterCell DefC = ME.getCell(RD, Map);
  892       RegisterCell ResC = ME.getCell(RD, ResMap);
  989 BT::RegisterCell BT::get(RegisterRef RR) const {
  993 void BT::put(RegisterRef RR, const RegisterCell &RC) {
 1008   for (std::pair<const unsigned, RegisterCell> &P : Map) {
 1009     RegisterCell &RC = P.second;
lib/Target/Hexagon/BitTracker.h
   44   using CellMapType = std::map<unsigned, RegisterCell>;
   52   const RegisterCell &lookup(unsigned Reg) const;
   53   RegisterCell get(RegisterRef RR) const;
   54   void put(RegisterRef RR, const RegisterCell &RC);
  315   bool meet(const RegisterCell &RC, unsigned SelfR);
  316   RegisterCell &insert(const RegisterCell &RC, const BitMask &M);
  316   RegisterCell &insert(const RegisterCell &RC, const BitMask &M);
  317   RegisterCell extract(const BitMask &M) const;  // Returns a new cell.
  318   RegisterCell &rol(uint16_t Sh);    // Rotate left.
  319   RegisterCell &fill(uint16_t B, uint16_t E, const BitValue &V);
  320   RegisterCell &cat(const RegisterCell &RC);  // Concatenate.
  320   RegisterCell &cat(const RegisterCell &RC);  // Concatenate.
  324   bool operator== (const RegisterCell &RC) const;
  325   bool operator!= (const RegisterCell &RC) const {
  330   RegisterCell &regify(unsigned R);
  335   static RegisterCell self(unsigned Reg, uint16_t Width);
  337   static RegisterCell top(uint16_t Width);
  339   static RegisterCell ref(const RegisterCell &C);
  339   static RegisterCell ref(const RegisterCell &C);
  348   friend raw_ostream &operator<<(raw_ostream &OS, const RegisterCell &RC);
  355 inline const BitTracker::RegisterCell&
  362 inline BitTracker::RegisterCell
  364   RegisterCell RC(Width);
  370 inline BitTracker::RegisterCell
  372   RegisterCell RC(Width);
  378 inline BitTracker::RegisterCell
  379 BitTracker::RegisterCell::ref(const RegisterCell &C) {
  381   RegisterCell RC(W);
  398   RegisterCell getCell(const RegisterRef &RR, const CellMapType &M) const;
  399   void putCell(const RegisterRef &RR, RegisterCell RC, CellMapType &M) const;
  404   RegisterCell getRef(const RegisterRef &RR, const CellMapType &M) const {
  405     RegisterCell RC = getCell(RR, M);
  406     return RegisterCell::ref(RC);
  411   bool isInt(const RegisterCell &A) const;
  413   uint64_t toInt(const RegisterCell &A) const;
  416   RegisterCell eIMM(int64_t V, uint16_t W) const;
  417   RegisterCell eIMM(const ConstantInt *CI) const;
  420   RegisterCell eADD(const RegisterCell &A1, const RegisterCell &A2) const;
  420   RegisterCell eADD(const RegisterCell &A1, const RegisterCell &A2) const;
  420   RegisterCell eADD(const RegisterCell &A1, const RegisterCell &A2) const;
  421   RegisterCell eSUB(const RegisterCell &A1, const RegisterCell &A2) const;
  421   RegisterCell eSUB(const RegisterCell &A1, const RegisterCell &A2) const;
  421   RegisterCell eSUB(const RegisterCell &A1, const RegisterCell &A2) const;
  422   RegisterCell eMLS(const RegisterCell &A1, const RegisterCell &A2) const;
  422   RegisterCell eMLS(const RegisterCell &A1, const RegisterCell &A2) const;
  422   RegisterCell eMLS(const RegisterCell &A1, const RegisterCell &A2) const;
  423   RegisterCell eMLU(const RegisterCell &A1, const RegisterCell &A2) const;
  423   RegisterCell eMLU(const RegisterCell &A1, const RegisterCell &A2) const;
  423   RegisterCell eMLU(const RegisterCell &A1, const RegisterCell &A2) const;
  426   RegisterCell eASL(const RegisterCell &A1, uint16_t Sh) const;
  426   RegisterCell eASL(const RegisterCell &A1, uint16_t Sh) const;
  427   RegisterCell eLSR(const RegisterCell &A1, uint16_t Sh) const;
  427   RegisterCell eLSR(const RegisterCell &A1, uint16_t Sh) const;
  428   RegisterCell eASR(const RegisterCell &A1, uint16_t Sh) const;
  428   RegisterCell eASR(const RegisterCell &A1, uint16_t Sh) const;
  431   RegisterCell eAND(const RegisterCell &A1, const RegisterCell &A2) const;
  431   RegisterCell eAND(const RegisterCell &A1, const RegisterCell &A2) const;
  431   RegisterCell eAND(const RegisterCell &A1, const RegisterCell &A2) const;
  432   RegisterCell eORL(const RegisterCell &A1, const RegisterCell &A2) const;
  432   RegisterCell eORL(const RegisterCell &A1, const RegisterCell &A2) const;
  432   RegisterCell eORL(const RegisterCell &A1, const RegisterCell &A2) const;
  433   RegisterCell eXOR(const RegisterCell &A1, const RegisterCell &A2) const;
  433   RegisterCell eXOR(const RegisterCell &A1, const RegisterCell &A2) const;
  433   RegisterCell eXOR(const RegisterCell &A1, const RegisterCell &A2) const;
  434   RegisterCell eNOT(const RegisterCell &A1) const;
  434   RegisterCell eNOT(const RegisterCell &A1) const;
  437   RegisterCell eSET(const RegisterCell &A1, uint16_t BitN) const;
  437   RegisterCell eSET(const RegisterCell &A1, uint16_t BitN) const;
  438   RegisterCell eCLR(const RegisterCell &A1, uint16_t BitN) const;
  438   RegisterCell eCLR(const RegisterCell &A1, uint16_t BitN) const;
  441   RegisterCell eCLB(const RegisterCell &A1, bool B, uint16_t W) const;
  441   RegisterCell eCLB(const RegisterCell &A1, bool B, uint16_t W) const;
  442   RegisterCell eCTB(const RegisterCell &A1, bool B, uint16_t W) const;
  442   RegisterCell eCTB(const RegisterCell &A1, bool B, uint16_t W) const;
  445   RegisterCell eSXT(const RegisterCell &A1, uint16_t FromN) const;
  445   RegisterCell eSXT(const RegisterCell &A1, uint16_t FromN) const;
  446   RegisterCell eZXT(const RegisterCell &A1, uint16_t FromN) const;
  446   RegisterCell eZXT(const RegisterCell &A1, uint16_t FromN) const;
  451   RegisterCell eXTR(const RegisterCell &A1, uint16_t B, uint16_t E) const;
  451   RegisterCell eXTR(const RegisterCell &A1, uint16_t B, uint16_t E) const;
  452   RegisterCell eINS(const RegisterCell &A1, const RegisterCell &A2,
  452   RegisterCell eINS(const RegisterCell &A1, const RegisterCell &A2,
  452   RegisterCell eINS(const RegisterCell &A1, const RegisterCell &A2,
lib/Target/Hexagon/HexagonBitSimplify.cpp
  202     static bool isEqual(const BitTracker::RegisterCell &RC1, uint16_t B1,
  203         const BitTracker::RegisterCell &RC2, uint16_t B2, uint16_t W);
  204     static bool isZero(const BitTracker::RegisterCell &RC, uint16_t B,
  206     static bool getConst(const BitTracker::RegisterCell &RC, uint16_t B,
  313 bool HexagonBitSimplify::isEqual(const BitTracker::RegisterCell &RC1,
  314       uint16_t B1, const BitTracker::RegisterCell &RC2, uint16_t B2,
  329 bool HexagonBitSimplify::isZero(const BitTracker::RegisterCell &RC,
  338 bool HexagonBitSimplify::getConst(const BitTracker::RegisterCell &RC,
 1278   const BitTracker::RegisterCell &DC = BT.lookup(RD.Reg);
 1279   const BitTracker::RegisterCell &SC = BT.lookup(RS.Reg);
 1321     const BitTracker::RegisterCell &DC = BT.lookup(RD.Reg);
 1338       const BitTracker::RegisterCell &SC = BT.lookup(RS.Reg);
 1473     const BitTracker::RegisterCell &DRC = BT.lookup(DR);
 1539   const BitTracker::RegisterCell &InpRC = BT.lookup(Inp.Reg);
 1548     const BitTracker::RegisterCell &RC = BT.lookup(R);
 1752     bool matchHalf(unsigned SelfR, const BitTracker::RegisterCell &RC,
 1756     bool matchPackhl(unsigned SelfR, const BitTracker::RegisterCell &RC,
 1763           const BitTracker::RegisterCell &RC);
 1765           const BitTracker::RegisterCell &RC);
 1767           const BitTracker::RegisterCell &RC);
 1769           const BitTracker::RegisterCell &RC);
 1771           const BitTracker::RegisterCell &RC, const RegisterSet &AVs);
 1773           const BitTracker::RegisterCell &RC);
 1775           const BitTracker::RegisterCell &RC, const RegisterSet &AVs);
 1796       const BitTracker::RegisterCell &RC, unsigned B, RegHalf &RH) {
 1824   const BitTracker::RegisterCell &SC = BT.lookup(Reg);
 1883       const BitTracker::RegisterCell &RC, BitTracker::RegisterRef &Rs,
 1922   const BitTracker::RegisterCell &RC = BT.lookup(RS.Reg);
 1967   const BitTracker::RegisterCell &RC = BT.lookup(RS.Reg);
 2013       BitTracker::RegisterRef RD, const BitTracker::RegisterCell &RC) {
 2040       BitTracker::RegisterRef RD, const BitTracker::RegisterCell &RC) {
 2079       BitTracker::RegisterRef RD, const BitTracker::RegisterCell &RC) {
 2111       BitTracker::RegisterRef RD, const BitTracker::RegisterCell &RC) {
 2145     const BitTracker::RegisterCell &SC = BT.lookup(RS.Reg);
 2171       BitTracker::RegisterRef RD, const BitTracker::RegisterCell &RC,
 2232     const BitTracker::RegisterCell &SC = BT.lookup(S);
 2324       BitTracker::RegisterRef RD, const BitTracker::RegisterCell &RC) {
 2339   const BitTracker::RegisterCell &SC = BT.lookup(RS.Reg);
 2384       BitTracker::RegisterRef RD, const BitTracker::RegisterCell &RC,
 2471     const BitTracker::RegisterCell &SC = BT.lookup(R);
 2599   const BitTracker::RegisterCell &SC = BT.lookup(SR.Reg);
 2617     BitTracker::RegisterCell NewRC(W);
 2685       BitTracker::RegisterCell NewRC(W);
 2729     const BitTracker::RegisterCell &RC = BT.lookup(RD.Reg);
 2969   const BitTracker::RegisterCell &RC = BTP->lookup(Reg);
 3023   const BitTracker::RegisterCell &OutC = BTP->lookup(OutR);
 3038   const BitTracker::RegisterCell &OutC1 = BTP->lookup(OutR1);
 3039   const BitTracker::RegisterCell &OutC2 = BTP->lookup(OutR2);
lib/Target/Hexagon/HexagonBitTracker.h
   28   using RegisterCell = BitTracker::RegisterCell;
lib/Target/Hexagon/HexagonGenInsert.cpp
  269     const BitTracker::RegisterCell &lookup(unsigned VR) {
  274       const BitTracker::RegisterCell *CP = CVect[RInd];
  283     using CellVectType = std::vector<const BitTracker::RegisterCell *>;
  336   const BitTracker::RegisterCell &RC1 = CM.lookup(VR1), &RC2 = CM.lookup(VR2);
  353   const BitTracker::RegisterCell &RC1 = CM.lookup(VR1);
  354   const BitTracker::RegisterCell &RC2 = CM.lookup(VR2);
  645   const BitTracker::RegisterCell &RC = CMS->lookup(VR);
  657   const BitTracker::RegisterCell &RC = CMS->lookup(VR);
  702   const BitTracker::RegisterCell &RC = CMS->lookup(VR);
  712   BitTracker::RegisterCell RC = CMS->lookup(VR);
  806   const BitTracker::RegisterCell &RC = CMS->lookup(VR);
  878     const BitTracker::RegisterCell &AC = CMS->lookup(SrcR);
usr/include/c++/7.4.0/bits/stl_map.h
  103       typedef _Tp					mapped_type;
  104       typedef std::pair<const _Key, _Tp>		value_type;
usr/include/c++/7.4.0/bits/stl_pair.h
  101 		      is_constructible<_T2, const _U2&>>::value;
  101 		      is_constructible<_T2, const _U2&>>::value;
  108 		      is_convertible<const _U2&, _T2>>::value;
  108 		      is_convertible<const _U2&, _T2>>::value;
  115 		      is_constructible<_T2, _U2&&>>::value;
  115 		      is_constructible<_T2, _U2&&>>::value;
  122 		      is_convertible<_U2&&, _T2>>::value;
  122 		      is_convertible<_U2&&, _T2>>::value;
  209     : private __pair_base<_T1, _T2>
  212       typedef _T2 second_type;   /// @c second_type is the second bound type
  215       _T2 second;                /// @c second is a copy of the second object
  252       using _PCCP = _PCC<true, _T1, _T2>;
  260       constexpr pair(const _T1& __a, const _T2& __b)
  269       explicit constexpr pair(const _T1& __a, const _T2& __b)
  283 			    _T1, _T2>;
  291         constexpr pair(const pair<_U1, _U2>& __p)
  311        constexpr pair(_U1&& __x, const _T2& __y)
  318        explicit constexpr pair(_U1&& __x, const _T2& __y)
  360 	constexpr pair(pair<_U1, _U2>&& __p)
  380 		       is_copy_assignable<_T2>>::value,
  391 		       is_move_assignable<_T2>>::value,
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
  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
  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
 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>
 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; };
 1563     { typedef _Tp     type; };
 1574       remove_const<typename remove_volatile<_Tp>::type>::type     type;
 1659     { typedef _Tp&&   type; };
 1955     { typedef _Tp     type; };